0

我有一种感觉,我只是在语法上做错了什么,但谷歌“GET”非常困难,所以我希望这里的人可能知道这个问题的答案。

我正在尝试从 RSpec 测试中测试 Rails 控制器。我正在关注我在这里找到的一个例子 - http://www.elevatedrails.com/articles/2007/09/10/testing-controllers-with-rspec/但我被困在我的方法的实际执行上米测试。

我正在做一个 GET 请求,上面的帖子是一个 POST。我传入了 2 个参数制造商和型号。

理想情况下,我的 URL 类似于http://mysite.com/Products/index/Manufacturer/ModelName

我无法弄清楚其余部分中获取请求调用的语法。现在我有

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

我回来了

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

有什么想法吗?

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

4

1 回答 1

1

因为我怀疑这是我对 Rails 编程的绿色。

我将控制器方法定义为

def index(manufacturer, modelName) 

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

一旦我这样做了,我将规范更改为阅读

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

它奏效了。

感谢大家的评论。

于 2009-05-26T01:18:16.993 回答