2011-02-09 1 views
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"} 
 

Что случилось здесь?

ответ

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