【问题标题】:Is it possible to sort a "built" record in a rails form?是否可以对 Rails 表单中的“构建”记录进行排序?
【发布时间】:2018-04-24 20:47:00
【问题描述】:

我围绕这个主题提出了几个问题,每次尝试某种方法时,我都会陷入不同的困境。

我想知道是否可以根据集合中的某些值对对象加入属性集合进行排序?

例如在我的代码的编辑操作中

  def edit
    Size.all.each do |size|
      unless @cake.sizes.exists?(size.id)
        @cake.cake_details.build(size_id: size.id, price: nil)
      end
    end
    @cake_details_collection = @cake.cake_details.order(:size_id)
  end

我想对其进行排序,因为构建的记录最后添加到表单中,然后它使表单看起来不一致和混乱。

我之所以像上面一样,是因为在更新操作中,当未选中复选框并且 text_field 留空时,我会删除任何关联。

这是我的表单中与上述相关的部分:

<div class="field">
  <%= form.fields_for :cake_details do |details| %>
      <%= details.check_box :size_id, {}, details.object.size_id %><br />
      <%= details.text_field :price %><br />
  <% end %>

到目前为止,其他一切都在销毁父对象和创建。我是快到那里还是一百万英里之外?

【问题讨论】:

    标签: ruby-on-rails sorting associations model-associations active-form


    【解决方案1】:

    进步!所以我不知道我可以对下面表格中的字段进行排序

    <div class="field">
      <%= form.fields_for :cake_details, @cake.cake_details.sort_by(&:size_id) do |details| %>
          <%= details.check_box :size_id, {}, details.object.size_id %><br />
          <%= details.text_field :price %><br />
      <% end %>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多