我在使用Rails的约会助手
时遇到了麻烦date_select
如果表单中只有一个表单,那么表单会完美地提交给数据库,但是如果我在表单中添加了另一个date_select帮助程序标记,那么我会收到以下错误:
Admin :: StudentRegistrationsController中的ActiveRecord :: MultiparameterAssignmentErrors #create
分配多参数属性时出现1个错误
我的控制器是通常的脚手架:
# POST /student_registrations
# POST /student_registrations.xml
def create
@student_registration = StudentRegistration.new(params[:student_registration])
respond_to do |format|
if @student_registration.save
format.html { redirect_to(@student_registration, :notice => 'Student registration was successfully created.') }
format.xml { render :xml => @student_registration, :status => :created, :location => @student_registration }
else
format.html { render :action => "new" }
format.xml { render :xml => @student_registration.errors, :status => :unprocessable_entity }
end
end
end
我的观点如下:
<%= form_for([:admin, @student_registration]) do |f| %>
<div class="reg_title">
Date of Birth
</div>
<div class="reg_content">
<%= f.date_select(:DOB,:start_year => 1940) %>
</div>
<div class="reg_title">
Passport Expiry Date
</div>
<div class="reg_content">
<%= f.date_select(:PPortE,:start_year => 1940) %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
在我的参数中,日期汇集在一起所以没有空白:
“DOB(1i)中”=&gt; “中1979年”, “DOB(2I)”=&gt; “中9”, “DOB(3I)”=&gt; “中4”, “PPortE(1i)中”=&gt; “中2012”, “PPortE(2I)”=&gt; “中1”, “PPortE的(3R)”=&gt; “中4”},
但是,如果我注释掉Passport exp date_select,表单的其余部分将会提交。任何想法将不胜感激
答案 0 :(得分:4)
解决。问题是数据库中护照到期日期的数据类型,由于某种原因,它被设置为VARCHAR而不是DATE。我想是使用遗留数据库的结果!