Ruby on rails RubyonRails中的按日期排序
我在Ruby on Rails中迭代一组对象,如下所示:Ruby on rails RubyonRails中的按日期排序,ruby-on-rails,ruby,Ruby On Rails,Ruby,我在Ruby on Rails中迭代一组对象,如下所示: <% @subject.Association.each do |horse| %> <tr> <td> <%= horse['Name'].to_s %> <%= horse['Size'] %> </td> </tr> <% end %> horse对象有一个日期字段,称为dateRode 我想
<% @subject.Association.each do |horse| %>
<tr>
<td>
<%= horse['Name'].to_s %>
<%= horse['Size'] %>
</td>
</tr>
<% end %>
horse对象有一个日期字段,称为dateRode
我想按此字段订购
我不是一个ruby开发人员,但我尝试了很多方法来实现这一点,只会导致语法错误,例如
<% subject.association.each do |horse|-> { order by "dateRode" DESC } %>
{按“日期”描述排序}%>
在我的代码中如何在不编辑ActiveRecords等的情况下执行此操作 尝试替换此选项:
<% @subject.Association.each do |horse| %>
与
希望它能对您有所帮助。尝试替换此:
<% @subject.Association.each do |horse| %>
与
希望它能对您有所帮助。您可以使用
order
方法如下:
<% @subject.Association.order(dateRode: :desc).each do |horse| %>
<tr>
<td>
<%= horse['Name'].to_s %>
<%= horse['Size'] %>
</td>
</tr>
<% end %>
您可以使用如下方法订购集合:
<% @subject.Association.order(dateRode: :desc).each do |horse| %>
<tr>
<td>
<%= horse['Name'].to_s %>
<%= horse['Size'] %>
</td>
</tr>
<% end %>
另一种方法是,您可以设置关联模型的默认排序范围,如下所示
class Association < ActiveRecord::Base
default_scope { order('dateRode DESC') }
end
类关联
因此,当您执行
时,另一种方法是您可以为关联模型的排序设置默认范围,如下所示
class Association < ActiveRecord::Base
default_scope { order('dateRode DESC') }
end
类关联
所以当你做
其中Model是您的模型的名称,association是您想要订购的关联的名称
控制器方法
def some_method
@subject = Model.order_by_date_rode
end
不太推荐的方法是在视图中进行排序
其中Model是您的模型的名称,association是您想要订购的关联的名称
控制器方法
def some_method
@subject = Model.order_by_date_rode
end
不太推荐的方法是在视图中进行排序