无法将参数传递给RSpec中的方法

时间:2013-08-21 04:02:58

标签: ruby-on-rails routes rspec-rails

我在Rspec中编写了以下代码,以测试我的一个控制器中的更新函数,该函数更新表T中的记录,其中有10个attrtbutes。在我的控制器的更新功能中,我已经通过params[:xyz][:id ], params[:xyz][:attr1] and so on.接收了参数所以我调用函数更新来更新表T的两个属性,在Rspec代码中如下:

it "should update the attributes properly" do    
  put :update, :id=>123, :xyz => {:id => 123, :attr1 => value of attr1, :attr2 => value of attr2}  
end

此处我已将ID传递到外部,因为rake routes我发现ID在更新功能的URL末尾显示为controller name/update/id。在我的控制器的更新功能中,我通过以下代码

收到了id

params[:xyz][:id] = params[:id] if params[:xyz] and not params[:xyz].key?(:id)

但这不起作用。它给出了以下错误。

NoMethodError: undefined method `key?' for "123":String

所以,如果有人帮助我纠正这个问题,我将非常感激。谢谢。

0 个答案:

没有答案