我有一个简单的表单,该表单还向CarrierWave添加了一个文件。
<%= simple_form_for @person, url: { controller: 'posts', action: 'create'}, remote: true do |f| %>
<%= f.input :name %>
<%= f.simple_fields_for :image_name do |i| %>
<%= i.input :file %>
<% end %>
<div class="form-actions">
<%= f.submit "Add New Person" %>
</div>
<% end %>
图像已安装在PersonImages < ActiveRecord::Base
在PersonController
中,我有
def new
@person = Person.new
@person.build_person_image
end
和..
def create
@person = Person.new(person_params)
if @ship.save
@persons = Person.all
render :person_list and return
end
end
如果我仅在人员姓名字段中输入姓名,然后提交即可。
注意远程请求。
控制台:Processing by PersonController#create as JS
人员列表部分已呈现。
但是,如果我还添加图像文件,它将失败。 请注意,其余的不再是远程的。
Console: `Processing by PersonController#create as HTML`
图像已成功上传,处理和持久保存,但是Rails现在希望呈现persons/create
html模板而不是persons/create.js.erb
模板。
有什么想法吗?
答案 0 :(得分:0)
仅对现在的回复表示抱歉。我确实尝试了上述所有建议的解决方案,但都没有碰到运气。将请求转出两次。
解决方案是将jquery_ujs
换成rails-ujs
,一切都很好。