在 Ruby 中打印关联详细信息时排序输出
Ordering output while printing association details in Ruby
我有一段代码几乎可以完美运行,但还不够完美。它正在输出新闻故事列表,并遵循我创建的客户-> 网站-> 新闻的关联。
但是我希望按新闻实体中的字段 "DATE" 对它们进行排序。目前它以看似随机的顺序输出,当我打印数据时我所做的任何更改都不会反映出来(你可以在下面的代码中看到我已经努力添加一个排序,但是从 ascending/descending 顺序改变使得没有区别)。
<div class="News">
<% @subject.customersAssociation.each do |customer| %>
<% customer.websitesAssociation.each do |website| %>
<% website.newsAssociation.sorted_by(field('DATE')).each do |news| %>
<ul>
<li>..Print data from |customer|... </li>
<li>..Print data from |website|... </li>
<li>..Print data from |news|... </li>
</ul>
<% end %>
<% end %>
<% end %>
您应该使用 order
,像这样:
website.newsAssociation.order(date: :desc)
您可以通过指定 :asc
而不是 :desc
来更改为升序
我有一段代码几乎可以完美运行,但还不够完美。它正在输出新闻故事列表,并遵循我创建的客户-> 网站-> 新闻的关联。
但是我希望按新闻实体中的字段 "DATE" 对它们进行排序。目前它以看似随机的顺序输出,当我打印数据时我所做的任何更改都不会反映出来(你可以在下面的代码中看到我已经努力添加一个排序,但是从 ascending/descending 顺序改变使得没有区别)。
<div class="News">
<% @subject.customersAssociation.each do |customer| %>
<% customer.websitesAssociation.each do |website| %>
<% website.newsAssociation.sorted_by(field('DATE')).each do |news| %>
<ul>
<li>..Print data from |customer|... </li>
<li>..Print data from |website|... </li>
<li>..Print data from |news|... </li>
</ul>
<% end %>
<% end %>
<% end %>
您应该使用 order
,像这样:
website.newsAssociation.order(date: :desc)
您可以通过指定 :asc
而不是 :desc