2017-07-31 7 views
0

私はUser、Link、Reportのモデルを持っています。ユーザーは複数のリンクを作成できます。ユーザーは複数のリンクを報告することができます。しかし、ユーザーは1つのリンクを複数回報告することはできません。レコードをレール5に投稿したユーザーに基づいてレコードの一意性を検証する方法は?

は、ここに私のモデルです: -

class User < ApplicationRecord 
    has_many :reports 
    has_many :links 

class Link < ApplicationRecord 
    belongs_to :user 
    has_many :reports 

class Report < ApplicationRecord 
    belongs_to :link 
    belongs_to :user 

私は運なしで次のことを試してみました。

has_one :user, through: :link 
validates_uniqueness_of :user_id 
validates_uniqueness_of :link_id, scope: :user_id 

私はそれがかなり簡単だろうと思った。そうではないようです。ヘルプをいただければ幸いです。

私はRails 5にあります。

+0

あなたはユーザーにuniq link_idまたはbody insideリンクモデルを持たせたいのですか? – Avdept

+0

心配しないでください。それは動作し、私の仕様は失敗しました。だから私はそれがうまくいかないと思った。うまくいったのは 'validates_uniqueness_of:user_id、scope::link_id'でした – RawCode

答えて

0

Nevermind。それは、私のテスト仕様が失敗しただけで動作します。だから私はそれがうまくいかないと思った。何がうまくいったのですかvalidates_uniqueness_of :user_id, scope: :link_id

関連する問題