Rails具有不同条件的关联

时间:2013-03-22 16:29:43

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

在User类中,我有:

has_many :posts, foreign_key: "by_user_id"

这将生成以下sql(当我调用user.posts时)

SELECT "posts".* FROM "posts" 
WHERE "posts"."by_user_id" = 2

如何定义生成以下sql的关联?

SELECT "posts".* FROM "posts" 
WHERE "posts"."by_user_id" = 2 or "posts"."group_user_id" = 2

帖子表包含两列(by_user_idgroup_user_id),group_user_id也是用户的ID。

2 个答案:

答案 0 :(得分:1)

Post.where(by_user_id: 2, group_user_id: 2)

这是你在找什么?

答案 1 :(得分:0)

解决方案是在User模型中使用类方法:

def posts
  Post.where('by_user_id = ? or group_user_id = ?', id, id)
end