2015-05-14 4 views
2

У меня есть модели блогов и категорий в моем приложении 4 рельсов. между этими двумя моделями существует много-много взаимосвязей. У меня есть несколько флажков. Я хочу получить все блоги, принадлежащие этой категории. У меня это в моем дневнике моделиприсоединиться к рельсам 4 с областью

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

Можете ли вы опубликовать журналы с того места, где происходит запрос? В принципе, я хочу, чтобы SQL получал сгенерированный. –

+0

SELECT 'blogs'. * FROM' blogs' INNER JOIN 'blog_categories' ON' blog_categories'.'blog_id' = 'blogs'.'id' WHERE (blog_categories.category_id в ('1,3')) ORDER BY опубликован DESC – kali

+0

сейчас я хочу получить все блоги, которые принадлежат category_id 1 и 3, но я получаю результат для id 1 не для 3 – kali

ответ

0

С тех пор вы получаете блоги по категориям. Поэтому используйте следующий код:

scope :by_categories, lambda{|category_ids| joins(:blog_categories).where("blogs.category_id in (?)", category_ids) if category_ids.present?} 
Смежные вопросы