0

前の質問Rails: Create a new entry in a model that belongs_to two other modelsの解決策を使用して、ストアによって収集されたすべての意見を表示したいと思います。

要約すると、私は has_many Products that have_many の意見を持つ Store を持っています (モデル コードの詳細については、前のリンクを参照してください)。

ストアによって収集されたすべての意見を取得するために、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 で意見を注文するにはどうすればよいですか?

より一般的には、2 世代子アソシエーションのパラメーターを使用して注文する方法を教えてください。

前もって感謝します。

4

1 に答える 1

1

Opinionに。がある場合、なぜ第2世代の子​​協会を使用する必要があるのか​​わかりません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
于 2012-08-18T10:08:12.483 に答える