ActiveRecord查询具有多对多或其他参数

时间:2011-03-31 19:18:30

标签: sql ruby-on-rails ruby-on-rails-3 activerecord relationship

我有2个模特

  • 项目(布尔列“隐藏”)
  • 模型

这两者有很多关系,所以我添加了一个带有projects_users表的迁移并使用

更改了模型
has_and_belongs_to_many :users
# and
has_and_belongs_to_many :projects

现在我想进行以下查询:

选择隐藏为false的所有项目或“current_user”(变量)属于项目

Project.where(“hidden =?”,false) 和 current_user.projects 作品。但是如何将它们组合成一个查询?

2 个答案:

答案 0 :(得分:1)

Project.joins("projects_users").where("hidden = ? OR projects_users.user_id = ?", false, current_user.id).group("projects.id")

答案 1 :(得分:0)

您所要做的就是为它们创建一个范围。然后,您可以使用rails控制台窗口测试它们