我想額外的參數傳遞到一個RSpec測試,因爲這樣(額外PARAMATERS是兩個數組,guest_value和bar_value):將參數傳遞給一個RSpec測試
it "should create an outing" do
lambda do
post :create, :outing => FactoryGirl.attributes_for(:outing), :guest_value => [55,66], :bar_value => [66,77]
end.should change(Outing, :count).by(1)
end
但是,我的測試完全忽略他們,好像他們甚至不在那裏。
另外,語法:
post :create, :outing => { FactoryGirl.attributes_for(:outing), :guest_value => [55,66], :bar_value => [66,77] }
踢了一個錯誤:
NoMethodError:
undefined method `each' for nil:NilClass
這是我的控制器代碼的結果:
def create
@outing = Outing.new(params[:outing])
@outing.user_id = @user.id
if @outing.save
params[:guestvalue].each do |guest_id|
@outing.add_guest(guest_id)
end
params[:barvalue].each do |bar_id|
@outing.add_bar(bar_id)
end
TimeRange.create(:element_id => @outing.id, :element_type => 'outing', :start_time => params[:day][:start_time], :end_time => params[:day][:end_time])
flash[:notice] = "Outing created successfully!"
redirect_to @outing
else
flash[:notice] = "Error creating outing!"
@outing = Outing.new
render(new_outing_path)
end
端
不能是你的電話':guest_value'和':bar_value',而你正在檢查'PARAMS [:guestvalue]'和'PARAMS [:barvalue]'(無下劃線),可它? – DVG 2012-07-10 00:53:47