1
我如何使用MetaWhere(在Rails 3中)编写此查询?如何在MetaWhere中编写此SQL?
SELECT "users".* FROM "users"
INNER JOIN "friendships" friends
ON "users"."id" = friends."friend_id"
INNER JOIN "friendships" inverse_friends
ON "users"."id" = inverse_friends."user_id"
WHERE friends."user_id" = 4
AND friends."status" = 't'
AND inverse_friends."friend_id" = 4
AND inverse_friends."status" = 't'
我想我叫buddies
User
类将从此Railscast on self-referential association同时返回friends
和inverse_friends
添加一个方法。
我很感激任何帮助!
编辑:我希望能够在返回的集查询,这样我可以做的:
def is_a_buddy_of?(user)
not self.buddies.where(:friend_id >> user.id).empty?
end
SOLUTION:没关系,去年的编辑,我只是修改了我is_a_buddy_of?(user)
方法这一点,使用|
经营者本人的现有关联:
def is_a_buddy_of?(user)
status = false
self.buddies.map do |buddy|
status = true if buddy.id == user.id
end
status
end
我有时因为简单而讨厌RoR。 :) 谢谢。 – neezer 2011-03-18 02:50:54
Aph,我说得太快......这给了我一个数组,而不是AR :: Relation。我希望能够查询这种方法...(见上面的编辑) – neezer 2011-03-18 02:56:02
哇,我真的不应该编写几乎完成了一瓶相当不错的'Terre del Negroamaro'(好吃!)。我选择坚持与你的工会操作员并相应地调整我的'哥们'方法(见上面最后编辑)。再次感谢。 – neezer 2011-03-18 03:06:54