使用我之前提问的解决方案:Rails: Create a new entry in a model that belongs_to two other models,我想显示商店收集的所有意见。
总结一下,我有一个拥有很多意见的产品的商店(请参阅上一个链接以获得有关模型代码的更多详细信息)
为了获得商店收集的所有意见,我在OpinionsController中使用以下代码:
# Show a specific store opinions.
def show
@store = Store.find_by_id params[:store_id]
end
然后,在show.html.haml视图中,我使用此代码显示意见:
%table
- @store.opinions.each do |opinion|
%tr
%td= opinion.id
%td= opinion.content
%td= opinion.product.name
%td= opinion.created_at
无论母产品是什么,我都可以通过opinion.created_at订购意见?
更一般地说,如何使用第二代子关联中的参数进行排序?
提前致谢。
答案 0 :(得分:1)
如果Opinion有store_id
,我不明白为什么你必须使用第二代子协会。
难道你不能这样做吗?:
# Show a specific store opinions.
def show
@opinions = Opinion.order(:created_at).find_all_by_store_id params[:store_id]
end
然后在你看来:
%table
- @opinions.each do |opinion|
%tr
%td= opinion.id
%td= opinion.content
%td= opinion.product.name
%td= opinion.created_at
或者,只有控制器中定义了@store
(就像你拥有的那样),你可以在视图中执行此操作:
%table
- @store.opinions.scoped.order(:created_at).each do |opinion|
%tr
%td= opinion.id
%td= opinion.content
%td= opinion.product.name
%td= opinion.created_at