【问题标题】:Rails: Process form with CarrierWave as JS and not HTMLRails:使用 CarrierWave 作为 JS 而不是 HTML 处理表单
【发布时间】: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 &lt; 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 模板。

有什么想法吗?

【问题讨论】:

标签: ruby-on-rails ajax ruby-on-rails-4 carrierwave simple-form


【解决方案1】:

抱歉,现在才回复。我确实尝试了上述所有建议的解决方案,但没有成功。结果请求被提出两次。 解决方案是将jquery_ujs 换成rails-ujs,现在一切正常。

来源:https://stackoverflow.com/a/44057260/5268472

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多