【发布时间】:2018-08-19 22:05:42
【问题描述】:
我有一个简单的表单,它也将文件添加到 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 模板。
有什么想法吗?
【问题讨论】:
-
在
create操作中创建一个带有图像的人后,您正试图将他带到索引页面并列出所有persons? -
这个答案 - stackoverflow.com/a/33564725/359736 应该会有所帮助。
标签: ruby-on-rails ajax ruby-on-rails-4 carrierwave simple-form