1

私はモデルを持ってUserhas_many Profileます。私もReportモデルを持っていbelongs_to Profileます。

1 人のユーザーが 1 つのレポートしか持たないようにするにはどうすればよいですか? 何かのようなもの

class Report
  validate_uniqueness_of profile_id, scope: :user 
end

素晴らしいでしょうが、もちろんうまくいきません。(所有権チェーンが混同されるため、ユーザーフィールドをレポートに添付したくありません)。

4

2 に答える 2

0

うまくいけば、ユーザーのすべてのプロファイルに同じレポートが表示されますよね? もしそうなら、それはプロファイルがユーザーに属していることを意味するので、そのようにモデル化しないのはなぜですか? 例えば:

class User 
  has_many :profiles
  has_one :report
end

class Profile
  belongs_to :user
  has_one :report, through: :user
end

class Report
  belongs_to :user
end
于 2013-08-21T10:35:08.793 に答える