我正在考虑的情况如下。对于我网站中的每个用户,我想分配一个个人资料图片。所以我会使用以下代码 模型用户 has_one:profile_pic,:classname =>'pic' 结束 但我不想给每个pic对象一个外键user_id,因为许多图片根本不与用户相关联。有没有办法做到这一点?
答案 0 :(得分:1)
在我看来,如果您不想存储用户的多张个人资料照片,并且每次更新照片时都会更新,则可以使用has_one关联。
另一方面,如果您打算存储用户上传的所有个人资料照片,那么您可能会制作用于存储用户个人资料照片的相册模型。使用
has_many :photos, :through => :albums
并向用户显示第一张图片。
答案 1 :(得分:1)
你可以做一个
class User
belongs_to :profile_pic, :classname => 'Pic'
end
并在profile_pic_id
表中添加users
。有道理。
不要担心用户belonging_to
张图片。它只表示密钥存储在此对象的表中,而不是存储在其他对象的表中。