2013-04-03 23 views
0

我有两个型号用户和照片。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 

我应该一个补充:profilePicture属性的用户指向现有PHOTOID,或者我应该添加一个名为新模式ProfilePicture,带有belongs_to:client,has_one:photo?

任何建议或链接,可以帮助我找出最好的方法来设置这将是有益的,谢谢。

回答

1

我做了类似的事情,我把profilePicture称为头像。用户模型必须在这是作为用户的化身的PIC的photo_id表中avatar_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"