に複雑なフィルタをONにする:Railsの4:私は私が私のタグモデルように私のレシピモデルを接続における多対多/持ち、多くのスルー関係持っ範囲
class Tag < ActiveRecord::Base
has_many :taggings
has_many :recipes, through: :taggings
end
class Tagging < ActiveRecord::Base
belongs_to :tag
belongs_to :recipe
end
class Recipe < ActiveRecord::Base
has_many :taggings
has_many :tags, through: :taggings
end
を...同じタグを持つレシピを範囲でフィルタリングする方法はありますか?私はスコープについては新しいですが、メソッドよりもはるかに便利であることがわかります。メソッドを使用してタグ名で検索とフィルタリングを行うことができます。例えば
これが私に与えられた名前でタグ付けされたすべてのレシピを取得します:
def self.tagged_with(name)
Tag.find_by_name!(name).recipes
end
申し訳ありませんが、これは動作しません。 –
予想通りチェーン化ができません。 –
はい、1つしか選択していないため、チェーンが許可されません。あなたはあなたの質問を、それが存在するかどうかをどのようにして使用するかの例で更新して、他の連鎖されたメソッドの具体例を与えてもらえますか?それは、a)あなたがしたいことが実際には行えないことb)あなたがやりたいことは、他のやり方でよりうまくいくことができることです –