7

Mam formularz utworzony za pomocą klejnotu simple_form, który wypełnia 2 modele za pomocą zagnieżdżonych atrybutów. Chcę sprawdzić, czy są jakieś błędy i wyświetlić nowy blok. Jednak nie jestem pewien, jak poprawnie uzyskać dostęp do komunikatu o błędzie dla atrybutu location modelu Booking.Uzyskiwanie dostępu do komunikatów o błędach dla zagnieżdżonego pola atrybutu

class Booking < ActiveRecord::Base 
    belongs_to :customer 

    attr_accessible :date_wanted, :location 
end 

i

class Customer < ActiveRecord::Base 
    has_many :bookings 
    accepts_nested_attributes_for :bookings 

    attr_accessible :name, :phone, :bookings_attributes 

    validates_presence_of :name, :phone 
end 

Formularz widok:

simple_form_for @customer, {:html => { :class => "form-horizontal" }} do |f| 
    = f.input :name 
    = f.input :phone 
    = f.simple_fields_for :bookings do |b| 
    = b.input :date 
    = b.input :location 
    - if @customer.errors[:appointments_attributes][:location] 
     # insert code if any validation errors for the date field were found 
    = f.button :submit 

Odpowiedz

7

b jest instancją postać budowniczego, trzymając booking, więc można spróbować:

# ... 
if b.object.errors[:location] 
# ... 
+1

Dziękujemy! Jestem w stanie sprawdzić, czy są jakieś komunikaty o błędach, używając 'b.object.errors [: location] .empty?'. – dspencer

Powiązane problemy