Hier sind 2 Modelle: Kunde und Adresse. Ein Kunde Adresse.Wie Fehler ausgelöst werden, wenn die Überprüfung verschachtelter Attribute fehlschlägt
class Customer < ActiveRecord::Base
has_one :address
accepted_nested_attributes_for :address, :allow_destroy => true
end
class Address < ActiveRecord::Base
belongs_to :customer
validates :add_line, :presence => true
end
<% simple_form_for @customer do |f| %>
.....
<%=f.simple_fields_for :address do |builder| %>
<%=render ('address', f: builder) %>
<% end %>
<%end %>
Adresse Ansicht
<%=f.input :add_line %>
address
wird Attribut in customer
verschachtelt. Das Problem, das wir haben, ist, dass, wenn address
falsch (ex, ein add_line
Null) innerhalb customer
Ansicht geändert wird, gibt es keinen Fehler (@customer.update_attributes
in Kunden-Controller) Pop-Up. Gibt es eine Möglichkeit, die geschachtelten Attribute so einzurichten, dass das Update fehlschlägt nil add_line
?
Es gibt belongs_to bereits hinzuzufügen. Ist 'reject_if' für die Validierung im Modell 'address' überflüssig? Das 'address_invalid' würde die Validierung im' address' Modell wiederholen. – user938363
Das Problem, das wir haben, ist, dass, wenn die 'add_line' im 'address'-Modell kein Nil ist, der Controller den Fehler auslösen sollte, anstatt ihn stillschweigend passieren zu lassen. Probieren Sie '!' Aus, und es wird kein Fehler ausgegeben, wenn im geschachtelten Modell ein Validierungsfehler auftritt. – user938363
Scheitert es/Fehler implizit mit der Validierungsmethode im 'Customer' Modell? –