1
我是rails新手,不確定如何設置以下內容。Rails:如何聲明兩個模型之間的可選一對一關聯
我有用戶,邀請和圖片模型。每個用戶都可以邀請其他用戶查看特定圖片。用戶向其他用戶發送邀請;邀請可能與特定圖片相關聯,也可能與某個圖片沒有關聯。
我的問題是我不知道如何關聯邀請和圖片之間的可選關係。
我:
class Invitation < ActiveRecord::Base
has_one :picture
end
class Picture < ActiveRecord::Base
belongs_to :invitation
end
然而,當我嘗試invitation.picture,我得到以下錯誤:
Failure/Error: @user.getsInvited invitation
ActiveRecord::StatementInvalid:
SQLite3::SQLException: no such column: picture.invitation_id: SELECT "picture".* FROM "picture" WHERE "picture"."invitation_id" = 1 LIMIT 1
也許我需要列邀請添加到圖片的模式,但是,這是必要的 - 在邀請中發送圖片可能是可選的。另外,如果我在圖片中確實有一個invitation_id列,如果在各種邀請之間共享相同的圖片,會發生什麼情況?
I.e.每個邀請可以具有與其關聯的單個圖片,並且其他邀請可以具有與其相關聯的相同圖片。我不希望圖片「知道」邀請,但也許我必須創建一個多對多的關係?
謝謝!
這樣的邀請,有一個可選的圖片(只是不設置'picture_id'場;)) – 2012-04-25 19:32:07
哇,我沒有看到即將到來!謝謝! :) – Karan 2012-04-25 19:38:22