我有消息和用戶模型與相應的表。
Messages表具有像user_from和user_to這樣的字段。Rails3活動記錄協會
如何模型關聯到能夠訪問發件人和收件人的用戶對象:
message.user_from.name
message.user_to.id
...
感謝。
我有消息和用戶模型與相應的表。
Messages表具有像user_from和user_to這樣的字段。Rails3活動記錄協會
如何模型關聯到能夠訪問發件人和收件人的用戶對象:
message.user_from.name
message.user_to.id
...
感謝。
我的情況下,完整的解決方案是:
belongs_to :sender,
:class_name => "User",
:foreign_key => "sender_id",
**:primary_key => "uid"**
belongs_to :recipient,
:class_name => "User",
:foreign_key => "recipient_uid",
**:primary_key => "uid"**
因爲用戶標識不是用戶表中的主鍵。
你需要更新你的消息模型是這樣的:
belongs_to :user_from, :class_name => "User"
belongs_to :user_to, :class_name => "User"
這港島線,可以創建通過它們的ID鏈接到用戶表信息表下的相應字段。
如果db將用戶id作爲外鍵存儲在消息表中,則不能爲關聯使用相同的名稱。但是,你可以說:
class Message
belongs_to :from, class: 'User', foreign_key: :user_from
belongs_to :to, class: 'User', foreign_key: :user_from
end
在軌
,它是使用<assiciation_name>_id
爲外鍵的列名的最佳實踐,那麼你可以使用簡單的
class Message
belongs_to :user_from, class: 'User' # foreign_key: :user_from_id by default
belongs_to :user_to, class: 'User' # foreign_key: :user_to_id by default
end
你的意思是belongs_to我猜。如果存儲外鍵的表列也被稱爲user_from和user_to,它仍然不起作用。 –
感謝您的回答。 這實際上是我做的,它不起作用。但我認爲它是正確的解決方案,我的代碼或數據庫中還有其他一些錯誤。 我在我的開發機器上使用SQLight。我應該定義外鍵來實現這個功能嗎? – Savash