【发布时间】:2023-04-04 00:48:01
【问题描述】:
好的,所以基本上我上传了一张图片,我只想在上传图片时重新加载我的部分。
每种语言都有许多图像。 (应用的奇怪结构,是的。)
我想从 images_controller 的方法重定向到 language_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:in `load_partial'
我尝试删除 :remote = > true,但还是一样。
我想要做的不是一个好习惯吗?我应该尝试其他方式吗?
感谢阅读。
编辑 在我的语言部分中,我得到了一个表单,我在其中为@image 调用 create 函数
<%=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") %>')
【问题讨论】:
标签: ruby-on-rails ruby ajax model-view-controller