0

ユーザーがdeviseを使用してサインアップしたときに、プロバイダーレコードを作成しようとしています。私はそれを次のように設定しました: デバイス:ユーザーbelongs_to組織

ただし、プロバイダーは作成されません。何が間違っているのでしょうか?

ユーザーhas_oneプロバイダー。
サインアップフォームを変更しました:

<%= fields_for :provider do |provider_fields| %>
      <%= provider_fields.label :name, :label => 'Company Name' %>
      <%= provider_fields.text_field :name %>
 <% end %>

そして私のモデル

attr_accessible :email, :password, :password_confirmation, :remember_me, :first_name, :last_name,  :provider_attributes
    belongs_to :provider
     accepts_nested_attributes_for :provider

レールの出力で確認できます。

 "provider"=>{"name"=>"kjhkjh"},

フォームを送信するときのユーザー属性の中で。

4

2 に答える 2

1

フォームビルダーに渡すブロック変数を特定するための完全なユーザー登録フォームを確認することはできませんが、それはであると想定します|f|fその場合は、接頭辞を付ける必要がありますfields_for

f.fields_for :provider

このように:provider_attributesして、単なるプロバイダーではなく、パラメーターを渡します。あなたはすでに:provider_attributesattr_accessible(もう1つの一般的な落とし穴)に追加しているようです。それで、それがあなたの合格点であることを確認する必要があります!

ソース:http ://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-fields_for

于 2012-11-28T06:43:26.303 に答える
0

あはは!セルフレスキュー。:)

ヘルパーが何を作成するか(または何か)を知ることができるように、プロバイダーモデルがnilの場合は、プロバイダーモデルを作成する必要があるようです。

だから私はこれをモデルに追加しました:

 def provider
    super || build_provider
  end

デバイスをaccepts_nested_attributes_forと連携させるには、1つの関係がありますか?

于 2012-11-28T09:16:23.967 に答える