我有兩個關聯的模型相同的模式:的Rails獲得相關車型
class Mail < ActiveRecord::Base
belongs_to :user, :class_name => 'UserFrom', :foreign_key => 'user_from'
belongs_to :user, :class_name => 'UserTo', :foreign_key => 'user_to'
end
當我運行索引操作下面的代碼不會得到正確的關聯模型,有什麼建議?
@mails = Mail.where('user_to = ?', current_user.id)
使用時每行debug
數據只能說明這一點:
---
- !ruby/object:Mail
attributes:
id: 1
created_at: 2013-02-13 21:17:41.962000000 Z
updated_at: 2013-02-13 21:17:41.962000000 Z
user_to: 1
user_from: 2
subject: Testing
body: Mail body blah blah blahhh
read:
read_at:
剛進入數據庫,並改變了外鍵和附加_id他們每個人。在控制器中,我使用了你提供的where子句,但它帶有一個錯誤:'SQL錯誤或缺少數據庫(沒有這樣的列:mails.sender)'.... 我想冒險猜測並說出這個是由於我沒有正確地創建關係,是否有任何額外的行動我需要做以克里特關係? – Callum 2013-02-13 22:33:06
您必須更改您的郵件遷移才能使用't.references:sender',以便在此情況下它將創建一個'sender_id'列。確保也在Mail模型上更新你的':foreign_key'選項以反映這個改變。 – 2013-02-13 23:07:55
我已經設法遷移兩個引用並使用'@mails = Mail.where(receiver_id:current_user)'來獲取郵件,但是我仍然無法獲取每個郵件的關聯用戶。我錯過了什麼? – Callum 2013-02-13 23:49:56