我是 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 列,如果在不同的邀请之间共享同一张图片会发生什么?
即,每个邀请可以具有与其相关联的单个图片,并且其他邀请可以具有与其相关联的相同图片。我不希望图片“知道”邀请,但也许我必须通过创建多对多关系来实现?
谢谢!