Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails嵌套模型窗体在子对象上显示随机顺序_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails Rails嵌套模型窗体在子对象上显示随机顺序

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

我遵循并习惯于为我的发行版创建轨迹(在教程中是调查问题)

这非常有效,直到我注意到轨迹添加到DB中的顺序似乎是随机的,而不是它们的外观或输入形式

轨迹是使用发布模型中的以下定义生成的:

 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