Можно ли отсортировать "встроенную" запись в виде рельсов?
У меня есть несколько вопросов, связанных с этой темой, и каждый раз, когда я пытаюсь найти какой-то подход, я спускаюсь в другую кроличью нору.
Я хотел бы знать, можно ли сортировать коллекцию атрибутов объединения объектов на основе некоторого значения в коллекции?
Например, в действии редактирования моего кода у меня есть
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 ответ
Прогресс! Так что я не знал, что могу отсортировать поля в форме ниже
<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 %>