0
我有一個按照下面的註冊模型,並試圖在窗體視圖中使用date_select和options_from_collection_for_select。我無法創建,因爲我不知道是否使用.build或。新和date_select似乎形式分別發送日/月/年,如date_select和構建問題
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
。在我_form.html.erb
<%= form_for([:admin,@group,@enrolment]) do |f| %>
---
<div class="field">
<%= f.label :course %><br />
<%= f.select :course, options_from_collection_for_select(@courses, 'name', 'name') %>
</div>
<div class="field">
<%= f.label :expiry %><br />
<%= f.date_select :expiry, :start_year => Time.now.year, :end_year => Time.now.year + 5 %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
在我的入學人數控制器
def new
@group = Group.find(params[:group_id])
#@enrolment = @group.enrolments.build
@enrolment = Enrolment.new
@courses = Course.all
respond_to do |format|
format.html # new.html.erb
format.json { render json: @enrolment }
end
end
def create
@group = Group.find(params[:group_id])
@course = Course.find_by_name(params[:enrolment][:course])
@courses = Course.all
#@enrolment = Enrolment.new(params[:enrolment])
@enrolment = @group.enrolments.build(:course_id => @course.id)
respond_to do |format|
if @enrolment.save
format.html { redirect_to admin_group_path(@group), notice: 'Enrolment was successfully created.' }
format.json { render json: @enrolment, status: :created, location: @enrolment }
else
format.html { render action: "new" }
format.json { render json: @enrolment.errors, status: :unprocessable_entity }
end
end
end
當我嘗試提交給我的驗證錯誤,我的失效不能爲空,我如何將這添加到創建方法,所以它的工作原理?任何幫助深表感謝
感謝那在我將選擇字段名稱更改爲course_id時工作的<%= f.select:course_id,options_from_collection_for_select(@courses,'id','name')%> – Norto23 2012-02-22 00:25:40