0

has_many 関連付けでオブジェクトをフィルター処理するための最適なソリューションを見つけようとしています。私がセットアップのために持っているのは

class Company < ActiveRecord::Base
  has_many :products
end

class Product < ActiveRecord::Base
  attr_accessible :title
  belongs_to :company
end

次に、CompanysController#show メソッドで、商品をタイトルでフィルター処理します。

def show
  @company = Company.find(params[:id])
  # Then I just want the @company.products where title = params[:title]
end

どんな助けでも大歓迎です。

4

1 に答える 1

0

コントローラーアクションはどこから製品タイトル(params [:title])を取得しますか?フォームから送信された検索用語として渡すだけの場合は、次のようなものを実行できるはずです。

 @products = @company.products.where("title = ?", params[:title])

編集:@company変数に関連商品を保存すると、@ companyに(Companyオブジェクトではなく)関連商品の配列が含まれるため、問題が発生します。これにより、ショーアクションで特定の会社についてアクセスできる情報が制限されるだけではありません。その変数からは、混乱を招きます(たとえば、@ companyという名前の変数を使用して、会社に関連付けられている製品のリストを格納している場合)

于 2013-03-22T18:45:11.570 に答える