2
这是我第一次搞嵌套属性。我遇到了一个问题,我试图创建一个具有“令牌”及其属性的“学校”。提交表单后,即使我使用令牌属性的令牌值提交表单,我也会收到错误,说明“令牌属性不能为空”(我的模型验证的b/c)。Rails 4嵌套属性和强参数
我认为在查看服务器日志时,事情并未对齐,但我不知道为什么?
Parameters: {"utf8"=>"✓", "authenticity_token"=>"xbDhfXJotAfgg6O9rnrSuKy01cxoTi/ZpgaDuD4fkQA=", "school"=>{"name"=>"Palmer", "address"=>"123 Palmer lane", "city"=>"Baldwinsville", "state"=>"CA", "zip"=>"10001", "tokens_attributes"=>{"0"=>{"database"=>"Rhetorical studies", "start_date(1i)"=>"2013", "start_date(2i)"=>"8", "start_date(3i)"=>"29", "expiration_date(1i)"=>"2014", "expiration_date(2i)"=>"8", "expiration_date(3i)"=>"29"}}}, "commit"=>"Update"}
我的学校模式是这样的:
class School < ActiveRecord::Base
has_many :users
has_many :tokens
accepts_nested_attributes_for :tokens
end
的schools_controller的新动作如下所示:
def new
@school = School.new
@school.tokens.build
end
我的学校的形式有以下fields_for:
<%= f.fields_for :tokens do |builder| %>
<p>
<%= builder.label "Database(s)" %>
<%= builder.text_field :database %>
<p>
<p>
<%= builder.label "Start Date" %><br />
<%= builder.date_select :start_date %>
<p>
<p>
<%= builder.label "Expiration Date" %><br />
<%= builder.date_select :expiration_date %>
<p>
<hr />
<% end -%>
And th E“school_params”强于“schools_controller.rb” PARAMS是这样的:
def school_params
params.require(:school).permit(:name, :address, :city, :state, :zip, tokens_attributes: [:id, :user_id, :school_id, :database, :start_date, :expiration_date])
end
基于日志,它好像我做错了什么在“school_params”。有什么想法吗?