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