Ich möchte etwas wie folgt aus:Wie aktualisiere ich das Objekt eines Modellobjekts?
@user.update_attributes(:name => "Obama", :profile => { :current_location => 'US' })
wo Benutzer has_one Profil.
Ich möchte etwas wie folgt aus:Wie aktualisiere ich das Objekt eines Modellobjekts?
@user.update_attributes(:name => "Obama", :profile => { :current_location => 'US' })
wo Benutzer has_one Profil.
Machen Sie sie zu verschachtelten Attributen. The documentation sagt:
ein Mitglied Modell Man bedenke, dass ein Avatar hat:
class Member < ActiveRecord::Base
has_one :avatar
accepts_nested_attributes_for :avatar
end
...
ermöglicht es Ihnen, den Avatar durch das Element zu aktualisieren:
params = { :member' => { :avatar_attributes => { :id => '2', :icon => 'sad' } } }
member.update_attributes params['member']
member.avatar.icon # => 'sad'
Wie bjelli hat es ist die accepts_nested_attributes_for
Methode, die Sie wahrscheinlich hier wollen. Es ist wichtig zu beachten, dass es die Weitergabe des Attributs "profile: id" ist, das es erkennt, dass es sich um ein Update handelt, das Sie ausführen möchten.
ich dies der nested_attributes.rb Kommentare lesen würde empfehlen, mehr zu verstehen:)