2011-07-22 15 views
0

私は2つのモデルがあります:本当に簡単Railsのアクティブ・レコード協会質問

class Mission < ActiveRecord::Base 
    belongs_to :category 
end 

class Category < ActiveRecord::Base 
    has_many :missions 
end 

をそして、私は複雑なミッションの検索文を持っています特定のカテゴリも検索できます。 私はこれを試してみましたが、それは動作しません:

@missions = Mission.send(@view, level).send(@show).send(:category, @category).search(@search).paginate :page => params[:page], :order => actual_sort, :per_page => 50 

Railsはミッションがない.categoryメソッドを持っていることを言います。これをどうやって解決しますか?

おかげで、 アウグスト

答えて

0

上のどこの選択を実行してみてくださいMY ... OH ... GOD

は、あなたがこのやってするための最良の方法ですか?

私はあなたがもう少し説明していない場合、人々はあなたを助けることができるとは思わないが、私は非常にあなたがそうのようなあなたの文を書くことができなかったことを疑う:

明らか
@missions = Mission.select("missions.level ...,category.attr ...").where(["missions.level = ? ...", level ...]).includes(:category).where(["categories.field = ?", ...]).paginate(...) 

省略記号(...)は、一般的になど

意味このテストでは、私のプロジェクトの一つ上の実施例である:

i = Item.where("items.name like '%Coupon%'").includes(:category).where(["categories.name = ? ",'Category 2']) 
+0

おかげで!あなたのヒントは私が解決策を見つけるのを助けました: – Augusto

+0

named_scope:category、lambda {| category | {:conditions => ["categories.name =?"、category]}カテゴリの場合!= ""} – Augusto