根据关联的数据列对记录进行排序
Sort Records according to associated data column
我真的很沮丧,我怎么能根据关联的数据列对记录进行排序
我正在我的控制器中获取记录,例如
@collection = @collection.includes(:countries).page(params[:page]).per(per_page)
在我的索引页中我这样做
<tbody>
<% @collection.each do |price_mapping| %>
<tr>
<td><%= price_mapping.countries.pluck(:name).join(', ') %></td>
<td><%= price_mapping.currency.code %></td>
<td><%= price_mapping.program.name %></td>
<td><%= price_mapping.active %></td>
<td><%= price_mapping.default %></td>
</tr>
<% end %>
</tbody>
连线
price_mapping.countries.pluck(:name).join(',')
我得到了像
这样的国家名称
Åland Islands, Algeria, Zimbabwe
现在我想根据第一个国家名称对我所有的@collections 进行排序
例如,如果一个集合有国家[津巴布韦、阿富汗、巴基斯坦],它将是最后一条记录,而如果有国家如[阿富汗、津巴布韦、加拿大],它将是第一个。
也许是这样的?
@collection = @collection.joins(:countries).order('countries.name ASC').page(params[:page]).per(per_page)
我们可以简单地使用 Order with includes
@collection = @collection.includes(:countries).order('countries.name ASC').page(params[:page]).per(per_page)
我不知道我什么时候尝试通过加入来执行此操作时,我得到了重复的记录,我必须添加 distinct 并且在该命令之后不起作用。
我真的很沮丧,我怎么能根据关联的数据列对记录进行排序
我正在我的控制器中获取记录,例如
@collection = @collection.includes(:countries).page(params[:page]).per(per_page)
在我的索引页中我这样做
<tbody>
<% @collection.each do |price_mapping| %>
<tr>
<td><%= price_mapping.countries.pluck(:name).join(', ') %></td>
<td><%= price_mapping.currency.code %></td>
<td><%= price_mapping.program.name %></td>
<td><%= price_mapping.active %></td>
<td><%= price_mapping.default %></td>
</tr>
<% end %>
</tbody>
连线
price_mapping.countries.pluck(:name).join(',')
我得到了像
这样的国家名称Åland Islands, Algeria, Zimbabwe
现在我想根据第一个国家名称对我所有的@collections 进行排序 例如,如果一个集合有国家[津巴布韦、阿富汗、巴基斯坦],它将是最后一条记录,而如果有国家如[阿富汗、津巴布韦、加拿大],它将是第一个。
也许是这样的?
@collection = @collection.joins(:countries).order('countries.name ASC').page(params[:page]).per(per_page)
我们可以简单地使用 Order with includes
@collection = @collection.includes(:countries).order('countries.name ASC').page(params[:page]).per(per_page)
我不知道我什么时候尝试通过加入来执行此操作时,我得到了重复的记录,我必须添加 distinct 并且在该命令之后不起作用。