在解决了路由的另一个问题之后,现在我有了另一个问题。
我的 routes.rb 中有这条路线:
match "user/create_new_password/:reset_password_key" =>"users#create_new_password", :via=>[:post, :get], :as=>:create_new_password
我可以像这样在我的功能测试中测试它:
test "should create new password " do
post :create_new_password, {:user=>{:password=>"123456", :password_confirmation=>"123456"}, :reset_password_key=>user.reset_password_key}
end
在我看来,我有以下形式:
=simple_form_for @user, :url=>create_new_password_path do |f|
=f.input :password, :label=>I18n.t("activerecord.attributes.user.email")
=f.input :password_confirmation, :label=>I18n.t("activerecord.attributes.user.password_confirmation")
=f.submit I18n.t "activerecord.actions.user.create_new_password"
当我提交表格时,我得到:
No route matches "/user/create_new_password/OqQxYTgjYKxXgvbAsTsWtMnIpMOpsjCRzLGZmJZLSbYtjvcvdpO"
大字符串是reset_password_key。
我已经在功能测试中使用相同的 reset_password_key 值对其进行了测试。
rake 路由的相关输出是:
create_new_password POST|GET /user/create_new_password/:reset_password_key(.:format) {:controller=>"users", :action=>"create_new_password"}
我错过了一些东西...