好的,基本上我上传了一张图片,我只想在上传图片时重新加载我的部分内容。
每种语言都有很多图像。 (应用程序奇怪的结构,是的。)
我想从一个方法从images_controller重定向到languages_controller的方法。
在我的 images_controller:
上def create
@image = Image.new(image_params)
if !params[:image][:image].nil?
if @image.save(image_params)
@language = Language.find(params[:image][:language_id])
@language.increment(:last_position)
@language.save
redirect_to load_language_partial_path(@language),:remote => true
end
else
respond_to do |format|
format.js {render :action => 'required_fields'}
end
end
end
我的 languages_controller 上的方法:
def load_partial
@language = Language.find(params[:id])
@image = Image.new
@images = @language.images.order(priority: :asc)
respond_to do |format|
format.js
end
end
问题是,当我在视图中从链接运行部分加载时,它运行得很完美,但是这样才能让我
ActionController :: UnknownFormat(ActionController :: UnknownFormat): app / controllers / languages_controller.rb:10:在`load_partial'
我尝试删除:remote =>是的,但同样的事情。
我想做的不是一个好习惯吗?我应该尝试其他方式吗?
感谢阅读。
修改 在我的语言部分,我得到了一个表单,我在其中称为创建函数@image
<%=form_for @image , url: images_create_path, remote: true, multipart: true, authenticity_token: true, html: {class: "form-horizontal", :style=> "" } do |f|%>
<h3 class="" style="float:left;margin-top:5px;"> Upload Image: </h3>
<div style="">
<span>
<%= f.file_field :image, :class => 'btn btn-default', 'data-show-upload' => false, :accept => 'image/*', :style=> 'margin-left:10px; float:left' %>
<%= f.number_field :language_id, :value=> @language.id, :style=> 'display:none' %>
<%= f.number_field :priority, :value=> @language.last_position, :style=> 'display:none' %>
</span>
<span>
<%= submit_tag "Upload",:class => 'btn btn-primary', :style=> "margin-left:10px;height:44px" , data: { disable_with: "Uploading..." } %>
</span>
</div>
<% end %>
我的 load_partial.js.erb
$('.page-content').html('<%= j(render partial: "/languages/languagePartial") %>')
答案 0 :(得分:1)
而不是
redirect_to load_language_partial_path(@language),:remote => true
尝试:
protocol = 'https://' or 'http://'
redirect_to protocol: protocol, controller: "languages", action: "load_partial", format: "js", languages: @language
如果需要,您可以跳过协议部分。我只是把它给了它,因为我用它来达到我的目的。所以你只能使用:
redirect_to controller: "languages", action: "load_partial", format: "js", languages: @language
最后的语言是您要传递的参数,您可以传递多个参数,也用逗号(,)分隔。