在轨道控制器中测试GET

时间:2009-05-25 17:15:12

标签: ruby-on-rails ruby rspec

我有一种感觉,我只是在语法上做错了,但谷歌“GET”令人惊讶的难度,所以我希望有人在这里可能知道答案。

我正在尝试从RSpec测试中测试Rails控制器。我正在按照我在这里找到的一个例子 - http://www.elevatedrails.com/articles/2007/09/10/testing-controllers-with-rspec/,但我仍然坚持我正在测试的方法的实际执行。

我正在执行GET请求,因为上面的帖子执行了POST。我传递了2个参数制造商和型号。

理想情况下,我的网址看起来像http://mysite.com/Products/index/Manufacturer/ModelName

我无法弄清楚其余的get请求调用的语法。现在我有

get :index, :manufacturer=>@manufacturer, :modelName=>@modelName

我回来了

  'ProductController中的ArgumentError查找有效产品应该检索产品'   错误的参数数量(0表示2)

有什么想法吗?

编辑:应该注意@manufacturer和@modelName在之前定义(:each)

1 个答案:

答案 0 :(得分:1)

我怀疑这是我对rails编程的绿色。

我将控制器方法定义为

def index(manufacturer, modelName) 

当我真的需要使用params哈希来访问属性时。然后我必须定义一个自定义路由,因为id是默认情况下预期传递给控制器​​方法的唯一参数。

一旦我这样做,我就改变了规范来阅读

get :index, {:manufacturer=>@manufacturer, :modelName=>@modelName}

它有效。

感谢大家的评论。