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 回答