Ruby on rails Rails嵌套模型窗体在子对象上显示随机顺序
我遵循并习惯于为我的发行版创建轨迹(在教程中是调查问题) 这非常有效,直到我注意到轨迹添加到DB中的顺序似乎是随机的,而不是它们的外观或输入形式 轨迹是使用发布模型中的以下定义生成的:Ruby on rails Rails嵌套模型窗体在子对象上显示随机顺序,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我遵循并习惯于为我的发行版创建轨迹(在教程中是调查问题) 这非常有效,直到我注意到轨迹添加到DB中的顺序似乎是随机的,而不是它们的外观或输入形式 轨迹是使用发布模型中的以下定义生成的: def track_attributes=(track_attributes) track_attributes.each do |attributes| tracks.build(attributes) end end 那么在发布表部分中,我有: <%= f.field
def track_attributes=(track_attributes)
track_attributes.each do |attributes|
tracks.build(attributes)
end
end
那么在发布表部分中,我有:
<%= f.fields_for :tracks do |builder| %>
<%= render 'track_fields', :f => builder %>
<% end %>
不是像我想的那样通过track_attributes=(track_attributes)def
有人知道如何编写before_save方法,该方法将根据我现在添加到表单中的位置字段对轨迹进行排序吗?SQL查询的执行顺序通常是随机的。这可以应用于批量插入和选择。如果您需要按特定顺序记录,则必须使用ORDERBY子句。根据如何保存记录,您可能能够对ID进行排序,否则考虑添加表示每个项的列表位置的字段。 < P>执行SQL查询的顺序一般是随机的。这可以应用于批量插入和选择。如果您需要按特定顺序记录,则必须使用ORDERBY子句。根据如何保存记录,您可能能够对ID进行排序,否则考虑添加表示每个项目的列表位置的字段。啊,我想可能是这样。在评论完这些曲目之后,我对这些曲目现在是如何保存的有点困惑。我认为保存了它们的构建(属性)行,我仍然可以保存曲目!!生成不保存ActiveRecord对象;它只是在记忆中创造出来的。啊,我明白了。你知道我是否可以为我的发布模型添加一个“sort_tracks”定义和一个before_save调用来实现这一点吗?嘿,Ryan,你找到保持曲目顺序的方法了吗?我面临着完全相同的问题,我找不到解决办法。救命啊!啊,我想可能是这样。在评论完这些曲目之后,我对这些曲目现在是如何保存的有点困惑。我认为保存了它们的构建(属性)行,我仍然可以保存曲目!!生成不保存ActiveRecord对象;它只是在记忆中创造出来的。啊,我明白了。你知道我是否可以为我的发布模型添加一个“sort_tracks”定义和一个before_save调用来实现这一点吗?嘿,Ryan,你找到保持曲目顺序的方法了吗?我面临着完全相同的问题,我找不到解决办法。救命啊!
<%= f.text_field :name, :class => "text" %>
<%= f.text_field :isrc, :class => "text" %>
<%= f.check_box :_destroy %>
etc
accepts_nested_attributes_for :tracks, :reject_if => lambda { |a| a[:name].blank? }, :allow_destroy => :true