ichRecordNotFound mit accepts_nested_attributes_for und belongs_to
Active :: RecordNotFound: Kann nicht-Client mit ID = 3 für den Auftrag mit ID finden =
beim Versuch, eine Bestellformular für ein vorlegen bestehender Kunde. Dies geschieht durch die Form oder die Konsole eingeben:
Order.new(:client_attributes => { :id => 3 })
payment_form.html.erb:
<%= semantic_form_for @order, :url => checkout_purchase_url(:secure => true) do |f| %>
<%= f.inputs "Personal Information" do %>
<%= f.semantic_fields_for :client do |ff| %>
<%= ff.input :first_name %>
<%= ff.input :last_name %>
<!-- looks like semantic_fields_for auto-inserts a hidden field for client ID -->
<% end %>
<% end %>
<% end %>
Order.rb:
class Order < ActiveRecord::Base
belongs_to :client
accepts_nested_attributes_for :client, :reject_if => :check_client
def check_client(client_attr)
if _client = Client.find(client_attr['id'])
self.client = _client
return true
else
return false
end
end
end
Die reject_if
Idee kam von here, aber ich habe die Methode protokolliert und es wird nicht einmal aufgerufen! Es ist egal, wie er heißt!
Erstellt dies nicht noch einen anderen Client erstellen, auch wenn es einen Client durch ID findet? – dubilla