以railsforms维护数组的顺序

我有3个模型(Workout,WorkoutSet,WorkoutStep),具有以下关联:

  • 锻炼有很多套
  • WorkoutSet有很多WorkoutSep
  • WorkoutStep有一系列video(称为video_usage[]

使用simple_form和cocoon我制作表单来编辑这样的关联但是,在编辑锻炼时,在最深层次(WorkoutStep的video数组)中,顺序似乎不是常数,而是按顺序排列(猜测) )最后一次修改属性(在这种情况下,修改后正在更改属性,例如选择另一个video)。

我希望video数组在编辑之间保持不变。

这就是我的表单的样子:

_workout_sets_fields.html.haml

 .nested-fields = f.simple_fields_for :main_video_usage do |mv| = render 'main_video_usage_fields', f: mv .steps{ :style => "margin-left: 680px" } = link_to_remove_association 'remove step', f = link_to_add_association 'add video', f, :main_video_usage 

_main_video_usage_fields.html.haml

 .nested-fields = f.collection_select :video_id, Video.all.order(:title), :id, :title 

如果要保持创建顺序,可以给出明确的顺序,使用idcreated_at

 has_many :main_video_usage, -> { order('id asc') }, class_name: 'VideoUsage::Main', as: :parent