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