我的rails 4应用程序中有Blog和Category模型。这两个模型之间存在多对多的关系。我有多个复选框。我想获得属于该类别的所有博客。我在我的博客模型中有这个
scope :by_categories, lambda{|category_ids| joins(:blog_categories).where("blog_categories.category_id in (?)", category_ids) if category_ids.present?}
这在我的控制器中
def search_blogs
@blogs = Blog.by_categories(params[:category_ids])
end
但每当我选择多个类别时,例如category_ids => [1,2,3],我的博客只有category_id 1而不是2和3
答案 0 :(得分:0)
因为,您正在按类别获取博客。所以使用以下代码:
scope :by_categories, lambda{|category_ids| joins(:blog_categories).where("blogs.category_id in (?)", category_ids) if category_ids.present?}