1

ユーザーと写真の2つのモデルがあります。

現在、ユーザーは多くの写真を持つことができます。プロフィール写真が 1 つあると言うのに最適なレール/データベース パターンを探しています。これは彼らが持っている写真の1つです。

ユーザーモデル

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

既存の photoId を指す :profilePicture 属性を User に追加する必要がありますか、それとも、belongs_to :client, has_one :photo を使用して ProfilePicture という新しいモデルを追加する必要がありますか?

これを設定するための最良の方法を見つけるのに役立つ提案やリンクは役に立ちます。ありがとうございます。

4

1 に答える 1

2

私は profilePicture をアバターと呼んだところに似たものを作りました。User モデルには、テーブルに 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"

終わり

于 2013-04-03T04:43:50.010 に答える