2012-03-05 16 views
0

私は2本のレールを持っているActive Recordのモデル・グループと検証一意性、has_manyの関係

group 

    has_many :accounts 

    id 
    name 
    .. other infromation 
    timestamps 


Account 

    belongs_to :group 

    id 
    name 
    .. other information 
    timestamps 

を占める私が検証し実行する必要があります。名前、:=一意性を>真のアカウントのセクションではなくグループの下でのみ。私は、グループの下でアカウント名を一意にしたいと思っています。私はデータベース固有の制約を適用することができますが、私はARを使用してこれを行うことはできますか?それも可能ですか?

答えて

9

これを試してみてください:

validate :name, :uniqueness => true, :scope => :group_id 

を検証するために利用できるオプションの詳細については、ActiveRecord Validations documentationをチェックしてください。

+1

ありがとうございます! 11分でこれを受け入れることができます!スタックオーバーフローとは何ですか? – Baaju

+1

'validate'または' validates'ですか? –

+1

少なくともRails5では、正しい方法は次のようになります: 'validates:name、:uniqueness {:scope =>:group_id}' – jlbenc

関連する問題