0

Rails 3.0.3 を使用しています。

routes.rb に次のルートがあります。


 match "user/create_new_password/:reset_password_key" =>"users#create_new_password", :via=>[:get, :post], :as=>:create_new_password

ビューでこのルートをフォームで使用すると、問題なく動作しますが、テストできません。私は機能テストでこれを行っています:


test "fail create password with invalid key" do
   post :create_new_password, {:create_new_password=>{:password=>"1", :password_confirmation=>"1"}, :reset_password_key=>"user.reset_password_key"} 
end

そして、私はエラーが発生しています:


ActionController::RoutingError: No route matches {:create_new_password=>{:password=>"1", :password_confirmation=>"1"}, :reset_password_key=>"user.reset_password_key", :controller=>"users", :action=>"create_new_password"}

ここで何が問題なのですか?

4

1 に答える 1

0

したがって、問題はパラメータ値にありました

:reset_password_key


test "fail create password with invalid key" do
   post :create_new_password, {:create_new_password=>{:password=>"1", :password_confirmation=>"1"}, :reset_password_key=>"user.reset_password_key"} 
end

に何か問題があるようです。(ドット) パラメーター値。

「。」なしで他の値に変更した場合 (ドット)、すべて問題ありません。以下は期待どおりに機能します。


test "fail create password with invalid key" do
   post :create_new_password, {:create_new_password=>{:password=>"1", :password_confirmation=>"1"}, :reset_password_key=>"user_reset_password_key"} 
end

于 2011-02-09T20:48:27.157 に答える