ich habe hier in einer Anwendung 3 Entitäten:
Firma (company)
Firmen-Adressen-Mapping (address_mapping)
Addressen (address).
In einer Firmen-Maske sollen die Adressen mitbearbeitet werden können.
also
<% fields_for “company[address_mappings][]”,address_mapping, do |form|
%> #Eingabefeld für die Straße
<%= form.textfield ‘address.street’, :index=>nil />
<%end %>
Dies Funktioniert aber leider nicht
Fehler:
undefined method `address.street’ for #AddressMapping:0xb677f400
Wie kann ich den Text-FieldHelper hier benutzen?
Dies soll ungefähr dies in den html-code schreiben:
ich versuche es jetzt mit zwei verschaltelten fields_for Ausdrücken -
nur leider will das Klammern noch nicht so ganz klappen:
Ausdruck:
<% fields_for “#{params[:controller]}[address_mapping_attributes][]”,
address_mapping do |form|%>
Ausdruck:
<% fields_for
“#{params[:controller]}[address_mapping_attributes][][address]”,
(address_mapping.address || Address.new) do |address_form|%>
Das führt zu einem geringfügig falschen Request.
{“company”=>{“address_mapping_attributes”=>[“type”=>“1”,
“address”=>[{“street”=>“St. Straße.”}]}, {“address”=>[{“zip”=>“12323”}]}
Ich hätte aber lieber:
{“company”=>{“address_mapping_attributes”=>{“type”=>“1”,“address”=>{“street”=>“St.
Straße.”,“zip”=>“12323”}}…}
Wie muss ich das Zweite fields_for Klammern?
Danke,
Am Dienstag, 20. November 2007 schrieb Jan L.:
ich versuche es jetzt mit zwei verschaltelten fields_for Ausdrücken -
nur leider will das Klammern noch nicht so ganz klappen:
Die Railscasts zum Thema kennst du?
Das entfernen von Unterobjekten würde ich allerdings anders lösen,
nämlich indem ich zu den bestehenden Unterobjekten die ids in hidden
fields schreibe und beim Update (unterobjekt_attributes=) die fehlenden
Objekte aus der Assoziation entferne. Das geht aber nur, wenn das
Oberobjekt versioniert ist und so Konflikte durch konkurrierende
Änderungen verhindert werden.
Michael
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.