0

構文的に何か間違ったことをしているだけだと感じていますが、Google で「GET」するのは驚くほど難しいので、ここの誰かがこれに対する答えを知っていることを願っていました。

RSpec テストから Rails コントローラーをテストしようとしています。ここで見つけた例に従っています- http://www.elevatedrails.com/articles/2007/09/10/testing-controllers-with-rspec/しかし、メソッドの実際の実行に固執していますmテスト。

上記の投稿がPOSTを行うGETリクエストを実行しています。メーカーとモデルの 2 つのパラメーターを渡します。

私の URL は、理想的にはhttp://mysite.com/Products/index/Manufacturer/ModelNameのようになります

残りの get request 呼び出しの構文がわかりません。今、私は持っています

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

そして私は戻ってきます

「ProductController Find a valid product should retrieve the product」の ArgumentError 引数の数が正しくありません (2 に対して 0)

何かご意見は?

編集: @manufacturer と @modelName は before(:each) で定義されていることに注意してください

4

1 に答える 1

1

私が疑ったように、これは私がレールプログラミングにグリーンであることでした。

コントローラーメソッドを次のように定義していました

def index(manufacturer, modelName) 

本当に params ハッシュを使用して属性にアクセスする必要がある場合。次に、id がデフォルトでコントローラー メソッドに渡される唯一のパラメーターであるため、カスタム ルートを定義する必要がありました。

それをしたら、仕様を読むように変更しました

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

そしてそれはうまくいきました。

コメントありがとうございます。

于 2009-05-26T01:18:16.993 に答える