1

在 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

Posts 表包含两个列 (by_user_idgroup_user_id),group_user_id也是一个用户的 id。

4

2 回答 2

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

这是你想要的?

于 2013-03-22T16:39:41.097 回答
0

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

def posts
  Post.where('by_user_id = ? or group_user_id = ?', id, id)
end
于 2013-03-22T20:08:10.877 回答