表单提交失败,在Rails 3中有多个date_select帮助程序

时间:2012-01-04 13:34:03

标签: ruby-on-rails-3.1

我在使用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,表单的其余部分将会提交。任何想法将不胜感激

1 个答案:

答案 0 :(得分:4)

解决。问题是数据库中护照到期日期的数据类型,由于某种原因,它被设置为VARCHAR而不是DATE。我想是使用遗留数据库的结果!