我一直在尝试将嵌套属性输入到我的数据库中,但我无法让它运行起来。
我有这些参数:
def domain_register_whois_contact_parameters
params.require(:domain).permit( whois_contacts_attributes: [:id, :first_name, :last_name, :street, :number, :postal_code, :city, :phone_number, :email_address, :company_type_id, :company_kvk, :company_name, :country_id])
end
这些输入参数:
{"utf8"=>"✓", "authenticity_token"=>"P4WTxAHKLgeRUQq60JvD/uMjo0s2BdMtqlBr1B6Z2hQ=", "domain"=>{"domain_name"=>"test.com", "whois_contacts_attributes"=>{"0"=>{"first_name"=>"Edward", "last_name"=>"Doe", "street"=>"Broadway", "number"=>"1", "postal_code"=>"1234AB", "city"=>"Amsterdam", "country_id"=>"205", "phone_number"=>"316123465", "email_address"=>"email@email.com", "company_name"=>"", "company_kvk"=>"", "company_type_id"=>""}}, "nameserver_first"=>"ns1.dns.com", "nameserver_second"=>"ns2.dns.com"}, "commit"=>"Register domain"}
我收到这样的错误:
param not found: whois_contacts_attributes
使用Google搜索了许多示例,但它不起作用。
在我的模特中,我有:
accepts_nested_attributes_for :whois_contacts
我的观点:
<%= f.simple_fields_for :whois_contacts, @domain.whois_contacts.new do |wc| %>
<%= wc.input :first_name, input_html: { placeholder: "John" } %>
<%= wc.input :last_name, input_html: { placeholder: "Doe" } %>
<%= wc.input :street, input_html: { placeholder: "Main street" } %>
<%= wc.input :number, input_html: { placeholder: "1" } %>
<%= wc.input :postal_code, input_html: { placeholder: "1234AB" } %>
<%= wc.input :city, input_html: { placeholder: "Amsterdam" } %>
<div class="form-group select required domain_country_country_name">
<label class="select required form-label" for="domain_country_country_name">
<abbr title="required">*</abbr> Country
</label>
<div class="controls">
<%= wc.collection_select :country_id, Country.all, :id, :full_name, {}, {:class=>'select required form-control'} %>
</div>
</div>
<%= wc.input :phone_number, input_html: { placeholder: "0612345678" } %>
<%= wc.input :email_address, input_html: { placeholder: "doe@johndoe.com" } %>
<h3>Company information</h3>
<%= wc.input :company_name, hint: 'If you have a company, please enter the company name.', input_html: { placeholder: "Doe Inc." } %>
<%= wc.input :company_kvk, hint: 'Enter Chamber of Commerce (Kvk) number', input_html: { placeholder: "12345678" } %>
<div class="form-group select required domain_company_company_name">
<label class="select required form-label" for="domain_company_companyname">
<abbr title="required">*</abbr> Company
</label>
<div class="controls">
<%= wc.collection_select :company_type_id, CompanyType.all, :id, :full_name, {}, {:class=>'select required form-control'} %>
</div>
</div>
<% end %>
答案 0 :(得分:2)
我会做三件事情。
def new
@domain = Domain.new
@domain.whois_contacts.build
end
def domain_params
params.require(:domain).permit(:domain_name, :nameserver_first, :nameserver_second, whois_contacts_attributes: [:id, :first_name, :last_name, :street, :number, :postal_code, :city, :phone_number, :email_address, :company_type_id, :company_kvk, :company_name, :country_id])
end
<%= f.simple_fields_for :whois_contacts do |wc| %>
<%= wc.input :first_name, input_html: { placeholder: "John" } %>
<%= wc.input :last_name, input_html: { placeholder: "Doe" } %>
<%= wc.input :street, input_html: { placeholder: "Main street" } %>
<%= wc.input :number, input_html: { placeholder: "1" } %>
<%= wc.input :postal_code, input_html: { placeholder: "1234AB" } %>
<%= wc.input :city, input_html: { placeholder: "Amsterdam" } %>
<div class="form-group select required domain_country_country_name">
<label class="select required form-label" for="domain_country_country_name">
<abbr title="required">*</abbr> Country
</label>
<div class="controls">
<%= wc.collection_select :country_id, Country.all, :id, :full_name, {}, {:class=>'select required form-control'} %>
</div>
</div>
<%= wc.input :phone_number, input_html: { placeholder: "0612345678" } %>
<%= wc.input :email_address, input_html: { placeholder: "doe@johndoe.com" } %>
<h3>Company information</h3>
<%= wc.input :company_name, hint: 'If you have a company, please enter the company name.', input_html: { placeholder: "Doe Inc." } %>
<%= wc.input :company_kvk, hint: 'Enter Chamber of Commerce (Kvk) number', input_html: { placeholder: "12345678" } %>
<div class="form-group select required domain_company_company_name">
<label class="select required form-label" for="domain_company_companyname">
<abbr title="required">*</abbr> Company
</label>
<div class="controls">
<%= wc.collection_select :company_type_id, CompanyType.all, :id, :full_name, {}, {:class=>'select required form-control'} %>
</div>
</div>
<% end %>