2016-04-02 5 views
0

Ich bin ein Abfragesystem zu schaffen. Ich möchte, dass alle Optionen einzigartig gemacht werden, aber nur innerhalb ihrer jeweiligen Poll. Ich bin mit einem proc zu bestätigen, dass sie nicht leer:Validieren Einzigartigkeit von verschachtelter Attribute Instanz mit accepts_nested_attributes_for

class Poll < ActiveRecord::Base 
    has_many :options 

    accepts_nested_attributes_for :options, reject_if: proc { |attributes| attributes['option'].blank? } 
end 

Aber ich bin nicht sicher, wie ihre Einzigartigkeit zu validieren. Ich habe versucht, es innerhalb des Option Modell zu tun, aber es ist die Ablehnung keine doppelten Optionen durch die Poll Form erstellt der f.fields_for:

class Option < ActiveRecord::Base 
    belongs_to :poll 

    validates_uniqueness_of :option, scope: :poll_id 
end 

Ist es möglich, es mit proc zu tun?

Antwort

0

Einzigartigkeit Validierung Nehmen auf Option wie validates_uniqueness_of :title, :other, scope: :poll_id

+0

Hoppla, ich hätte klarer sein sollen. ': option' ist ein Attribut von' Option'. Aber Sie sagen, dass die Validierung auch dann funktionieren sollte, wenn die 'Option' Instanz mit' Poll's 'f.fields_for: options' erstellt wurde? – Jane

+0

ja & können Sie Ihren Formularcode zur Frage hinzufügen? –

0

Attribute Sie jede Bedingung zu, dass proc passieren kann. Sie können also eine Abfrage für diese Spalte durchführen, um zu sehen, ob Ergebnisse zurückgegeben werden, und sie ablehnen, falls dies der Fall ist.

Verwandte Themen