我有两个模型用户和照片。
目前,用户可以拥有许多照片。我正在寻找最好的rails /数据库模式,因为他们说有一张个人资料图片。这是他们的照片之一。
用户模型
class User < ActiveRecord::Base
attr_accessible :emailAddress, :firstName, :lastName, :middleName, :phoneNumber
has_many :photos
end
照片模型
class Photo < ActiveRecord::Base
belongs_to :client
attr_accessible :image, :client_id
has_attached_file :image
end
我应该向User添加:profilePicture属性,指向现有的photoId,还是应该添加名为ProfilePicture的新模型,使用belongs_to:client,has_one:photo?
任何有助于我找到最佳设置方法的建议或链接都会有所帮助,谢谢。
答案 0 :(得分:2)
我做了类似的事情,我将profilePicture称为头像。用户模型必须在表格中具有avatar_id字段,该字段是用作用户的化身的pic的photo_id。请注意,照片中的avatar_owner只会在作为头像照片的照片实例中分配。
用户模型
class User < ActiveRecord::Base
attr_accessible :emailAddress, :firstName, :lastName, :middleName, :phoneNumber, :avatar_id
has_many :photos
belongs_to :avatar, :class_name => "Photo", :foreign_key => "avatar_id"
end
照片模型
class Photo < ActiveRecord::Base
belongs_to :client
attr_accessible :image, :client_id
has_attached_file :image
has_one :avatar_owner, :class_name => "User", :foreign_key => "avatar_id"
端