問題は、私がネストされたフォームでfields_forを使用しているときに、間違った名前のフィールドを生成しているということです。fields_forアソシエーションに間違った名前を生成する
簡略化されたモデルは、次のとおりに鑑み
class User < ActiveRecord::Base
has_one :owned_account, :class_name => "Account", :foreign_key => "user_id"
accepts_nested_attributes_for :owned_account
attr_accessible :email, ... :owned_account, :owned_account_attributes
end
class Account < ActiveRecord::Base
belongs_to :owner, :class_name => 'User', :foreign_key => 'user_id'
attr_accessible :subdomain
end
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<div class="inputs">
<% resource.build_owned_account %>
<%= f.fields_for resource.owned_account do |a| %>
<p>
<%= a.label :subdomain, "Account handle" %>
<%= a.text_field :subdomain %>
</p>
<% end %>
<p>
...
<% end %>
が生成するマークアップである(これは、方法によって考案図である):だから
<p>
<label for="user_account_subdomain">Account handle</label>
<input id="user_account_subdomain" name="user[account][subdomain]" size="30" type="text">
</p>
user [owned_account] [subdomain]の代わりにuser [account] [subdomain]を生成しています。私はフィールドの名前を上書きしようとしましたが、それを動作させるように見えるかもしれません。
ご協力いただきまして、ありがとうございます。
ありがとうございました!私はresource.build_owned_accountを入れる前に同様のことがあったと思うので、その時点では動作していませんでした。ご協力いただきありがとうございます。 – slarti42uk