Rails:Profile Picture Model Association

时间:2013-04-03 01:52:52

标签: ruby-on-rails paperclip model-associations

我有两个模型用户和照片。

目前,用户可以拥有许多照片。我正在寻找最好的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?

任何有助于我找到最佳设置方法的建议或链接都​​会有所帮助,谢谢。

1 个答案:

答案 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"