如何改善rails记录更新? (当存在许多相关记录时)

时间:2017-09-28 00:18:46

标签: ruby-on-rails activerecord associations model-associations

我有rails记录(items),每个记录链接到300-800个相关记录(item_modifiers)。

每次从我的网络表单更新主记录(项目)时,大多数相关记录(item_addons)都不会受到影响。这似乎是一个很大的性能问题,因为我看到每个关联记录(项目插件)被选中并保存。

有哪些解决方案可以提高性能?

网络表单:

<%= simple_form_for(@item, :html => { :multipart => true }) do |f| %>  
    <%= f.input :name, label: "Name", required: true, placeholder: 'Buffalo Pizza' %>

  <%= f.simple_fields_for :addons, f.object.addons.order(priority: :desc) do |addon| %>
      <%= render 'shared/addon_fields', f: addon, cache: true %>
  <% end %>
  <%= link_to_add_association 'Add Group', f, :addons, class: 'btn btn-default btn-sm' %>

  <%= f.submit 'Save', class: 'btn btn-lg btn-primary' %>
<% end %>

控制器:

  def update    
    respond_to do |format|
      if @item.update(item_params)
        format.html { redirect_to "/sections/#{@item.section.to_param}", notice: 'Item was successfully updated.' }
      end
    end
  end

0 个答案:

没有答案