Jestem nowy na szynach, więc wszelkie rady są mile widziane.Zagnieżdżone atrybuty: niechciana walidacja pomimo reject_if: All_blank
Mam klasy Wstęp ze zagnieżdżone atrybutów adresy
/app/models/entry.rb
class Entry < ActiveRecord::Base
has_many :addresses, :dependent => :destroy
accepts_nested_attributes_for :addresses,
:allow_destroy => true,
:reject_if => :all_blank
end
z klasą adresów jak ten
/app/models/address.rb
class Address < ActiveRecord::Base
belongs_to :entry
validates :zip, :presence => true
end
A w postaci zagnieżdżonych mam
/app/view/entries/_form.html.slim
= simple_form_for(@entry) do |f|
= f.error_notification
- @entry.addresses.build
.form-inputs
= f.simple_fields_for :addresses do |address|
= render 'address_form', :f => address
Chodzi o to, że gdy formularz jest renderowane, „Build” stworzy pusty „adres” oprócz aktualnych adresów wymienionych w bazie danych. Gdy zmiany zostaną zapisane, jeśli utworzony nowy adres będzie nadal pusty, zostanie odrzucony i nie zostanie zapisany w bazie danych.
Jednak sprawdzanie poprawności w pliku address.rb dokonuje sprawdzenia przed zapisaniem, dlatego użytkownik nie może kontynuować akcji składowania. Czy coś mi zostało?