2013-10-30 81 views
0

我在模型中爲節日,類別,提交和策展人(用戶)設置了以下關係。在多個條件下的控制器中的Rails查詢

  • 節日有很多類別。每個類別都有一個節日。
  • 每個類別都有一個或多個策展人(用戶),策展人可以有多個類別。
  • 提交有一個類別和一個節日(通過它的類別)。
  • 「CURRENT_USER」是記錄在
  • 「current_festival」是一個節,目前正在採取新提交

當館長(用戶)在登錄的用戶,他們看提交索引。他們只應該看到他們擔任策展人的意見書(通過類別)。我很難決定如何生成正確的提交列表。以下是在現在控制器:

def index 
    @submissions = current_festival.submissions.all 
end 

這將返回所有提交當前的節日,不只是從該CURRENT_USER是館長的類別。我想是這樣的,但我不知道正確的語法:

def index 
    @categories = current_user.categories.where(festival_id: current_festival.id) 
    @submissions = current_festival.submissions.where(category_id: "one of the @categories") 
end 

任何想法的正確語法會是什麼?

+0

在你想獲取提交第二查詢創建提交CATEGORY_ID地方在於,從第一次查詢返回@categories,對吧? ? – LHH

回答

2

這會給你所有屬於哪個類別被CURRENT_USER

def index 
    category_ids = current_user.categories.where(festival_id: current_festival.id).collect(&:id) 
    @submissions = current_festival.submissions.where(category_id: category_ids) 
end