我has_and_belongs_to_many
在类别和帖子之间有关系。我正在设置一个范围来查询特定类别中的所有帖子。下面的范围有效,但是看起来很冗长。有没有更好的方法可以重构它?
在Post模型中:
scope :in_category, ->(category) { joins(:categories).where(categories_posts: {category_id: category.id} ) }
我在Post
模型中不知道其他任何方式。
但是创建此范围是不必要的。假设您已经有一个Category
实例,则可以这样做:
category.posts
编辑:
如果您正在寻找一种可以在Post
类上调用的方法,请使用此作用域(但是我认为这是重新发明的方法,因为Rails已经提供了上面的方法):
class Post
scope :in_category ->(category) { category.posts }
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句