2012-07-10 87 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"] }