【发布时间】:2017-02-28 07:00:39
【问题描述】:
在将我的食谱模型连接到我的标签模型时,我有一个多对多/多对多的关系,这样:
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
【问题讨论】:
标签: ruby-on-rails scope many-to-many has-many-through