Ruby on rails 3 日期\选择和生成问题

Ruby on rails 3 日期\选择和生成问题,ruby-on-rails-3,forms,Ruby On Rails 3,Forms,我有一个如下所示的注册模型,我试图在表单视图中使用日期选择和选项选择。我在创建时遇到问题,因为我不知道是使用.build还是.new,并且您选择的日期似乎在表单中分别发送了天/月/年,例如 Parameters: {"utf8"=>"✓", "authenticity_token"=>"HUQmbkmoATm6P/Avl11wmYqMrYeXVTZ/qmYfC2dpAFM=", "enrolment"=>{"course"=>"First Aid", "expiry(1i

我有一个如下所示的注册模型,我试图在表单视图中使用日期选择和选项选择。我在创建时遇到问题,因为我不知道是使用.build还是.new,并且您选择的日期似乎在表单中分别发送了天/月/年,例如

Parameters: {"utf8"=>"✓", "authenticity_token"=>"HUQmbkmoATm6P/Avl11wmYqMrYeXVTZ/qmYfC2dpAFM=", "enrolment"=>{"course"=>"First Aid", "expiry(1i)"=>"2012", "expiry(2i)"=>"2", "expiry(3i)"=>"20"}, "commit"=>"Create Enrolment", "group_id"=>"2"}
我的注册模式

class Enrolment < ActiveRecord::Base
  belongs_to :course
  belongs_to :group
  attr_accessible :course_id, :group_id, :expiry
  validates_presence_of :expiry, :course_id, :group_id 
end
当我试图提交它的giving me validation errors(我的到期日不能为空)时,如何将其添加到create方法中使其工作?非常感谢您的帮助

您是否尝试过:

@enrolment = @group.enrolments.build(params[:enrolment])
基本上,您没有使用用户通过表单提交的信息,这就是您的到期日为零的原因当然你必须稍微改变一下你的体形,改成类似

options_from_collection_for_select(@courses, 'id', 'name')

所以你传递的是id而不是名字

感谢您在我将“选择字段”名称更改为“课程id”时所做的工作,
@enrolment = @group.enrolments.build(params[:enrolment])
options_from_collection_for_select(@courses, 'id', 'name')