オプションのモデルを使用して、あるフォームを別のフォームにネストできるようにするために、コントローラーと実際のフォームの両方を書くのにまだ苦労していますか?
多くの連絡先を持つメッセージがあります
メッセージを送信するときに、オプションで連絡先を追加したい。
例としてこれがあります:
= simple_form_for Message.new, :remote => true do |f|
#message_form
= f.error_messages
%p
= f.input :account_name, :url => autocomplete_account_name_messages_path, :size => 40, :as => :autocomplete
%p
= f.input :topic, :required => true,
:input_html => {:size => 30}
#add_contact_btn
= link_to "Add Contact"
#contact_form
= f.simple_fields_for :contactd do |fc|
= fc.input :email
= fc.input :first_name
= fc.input :last_name
= f.submit 'Give'
= f.submit 'Request'
Message.rb モデルの場合、次のものがあります。
has_many :contacts
accepts_nested_attributes_for :contacts, :reject_if =>:all_blank
注: simple_fields_for で :contacts を使用したときは機能しなかったため、特異です。しかし、accepts_nested_attributes_for の場合は逆です。
メッセージの作成コントローラーに、message.contacts.build を含めました。
しかし、現在、私はまだゼロの連絡先を生成しています.
これは、Google Chrome からフォーム データとして渡されたものです。
message%5Baccount_name%5D:McKesson
message%5Btopic%5D:testing a contact
message%5Bbody%5D:testing this
sender_id:
receiver_id:23
message%5Bcontacts%5D%5Bemail%5D:888@gmail.com
message%5Bcontacts%5D%5Bfirst_name%5D:Ang
message%5Bcontacts%5D%5Blast_name%5D:Name