我正在Rails 3中開發一個小應用程序。在此應用程序中,用戶可以相互連接。我主要使用兩個表來存儲用戶數據和關係。我想用名字或姓氏搜索這些表來獲取用戶的聯繫人。使用Join in Rails進行搜索3
表ONE - 情景模式
在這個表,我存儲用戶的名字,姓氏和ID。
表TWO - 觸點
在此表中我存儲用戶的ID(PROFILE_ID),他被連接到(friend_id)的用戶的ID。
我正在使用以下查詢,但它沒有得到正確的結果。
Profile.find_by_sql("SELECT * FROM contacts
INNER JOIN profiles ON contacts.friend_id = profiles.id WHERE profiles.firstname = '#{@keyword}' OR profiles.lastname = '#{@keyword}'")
是什麼問題,它是如何更有效?
我猜配置文件需要兩個:聯繫人和:朋友。 :聯繫人將以通常的方式定義has_many:聯繫人和:朋友將是你的:聯繫人 – Jean 2010-10-20 12:19:42
這是可能的,但真的不是一個好的方式。添加了很多無用的方法 – shingara 2010-10-20 12:23:29
@Shingara。我得到的錯誤:SQLite3 :: SQLException:沒有這樣的列:contacts.firstname:SELECT「profiles」。* FROM「profiles」WHERE(「contacts」。「firstname」='anders')AND(「contacts」。「lastname 「='anders') – 2010-10-20 16:57:17