一个简单形式的嵌套表单的例子?

Tim*_* T. 5 ruby-on-rails nested-forms simple-form

我仍然在努力编写控制器和实际表单,以便能够使用可选模型将一个表单嵌套到另一个表单中?

我有消息,有很多联系人

提交邮件时,我想选择添加联系人.

我以此为例:

= 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'
Run Code Online (Sandbox Code Playgroud)

对于Message.rb模型,我有以下内容:

has_many :contacts
accepts_nested_attributes_for :contacts, :reject_if =>:all_blank
Run Code Online (Sandbox Code Playgroud)

注意:当我使用时:simple_fields_for中的联系人不起作用,所以它是单数.但accept_nested_attributess_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
Run Code Online (Sandbox Code Playgroud)

axe*_*rge 8

正确的方法名称是simple_fields_for(注意复数)

此外,您需要保持f.在simple_form对象上调用它