2012-07-10 90 views
0

数组下面的代码应该创建一个数组一起发送它作为params哈希表的一部分:惩戒在rspec的

 it "should create an outing" do 
      lambda do 
       post :create, { :outing => FactoryGirl.attributes_for(:outing), :guestvalue => ["80","89"] , :barvalue => ["2976","2973"] } 
      end.should change(Outing, :count).by(1) 
     end 

相反,它给我的错误:

NoMethodError: 
    undefined method `[]' for nil:NilClass 

的参数传递到我的控制器的这一部分:

params[:guestvalue].each do |guest_id| 
     @outing.add_guest(guest_id) 
    end 

    params[:barvalue].each do |bar_id| 
     @outing.add_bar(bar_id) 
    end 
+0

请张贴在PARAMS被传递到(你真的应该刚才在您的最后一个职位,没有人喜欢重复后) – reagan 2012-07-10 01:22:14

+0

哦,对不起。这里还是新的。从技术上来说,这是一个不同的问题,但我明白你的观点。 – 2012-07-10 01:23:33

+0

我对'lambda'不熟悉,你有没有尝试过使用'do'? – reagan 2012-07-10 01:31:10

回答

0

对于任何人仍然感兴趣,这里是专业人士每个语法传递一个数组:

post :create, { :outing => FactoryGirl.attributes_for(:outing), :guestvalue => ["80","89"] , :barvalue => ["2976","2973"] }