我有一种感觉,我只是在语法上做错了,但谷歌“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)
答案 0 :(得分:1)
我怀疑这是我对rails编程的绿色。
我将控制器方法定义为
def index(manufacturer, modelName)
当我真的需要使用params哈希来访问属性时。然后我必须定义一个自定义路由,因为id是默认情况下预期传递给控制器方法的唯一参数。
一旦我这样做,我就改变了规范来阅读
get :index, {:manufacturer=>@manufacturer, :modelName=>@modelName}
它有效。
感谢大家的评论。