是否可以对"内置"进行排序。以铁轨形式记录?

时间:2018-04-24 20:47:01

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

我围绕这个话题开了几个问题,每当我尝试一些方法时,我都会去另一个兔子洞。

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

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

  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 %>

到目前为止,其他所有内容都在用于销毁父对象和创建。我差不多在那里还是一百万英里之外?

1 个答案:

答案 0 :(得分:0)

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

<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 %>