我在rails应用程序中添加了重设密码的功能
在我的用户页面中,我列出了所有用户
如果我在用户下方以管理员身份登录,则会向用户提供重置密码的链接,这将为他们设置默认密码
<%= link_to "Reset Password",reset_password_user_path %>
在我的控制器用户中
def reset_password
@user = params[:user]
puts "which user #{@user}"
@user.password = "12345"
if @user.save
flash[:notice] = "Password successfully reseted"
redirect_to user_path
else
flash[:error]= "Password not reste!"
redirect_to user_path
end
end
在我的路线
map.resources :users, :member => {:reset_password => :post}
当我运行我的用户页面时,我收到如下错误
reset_password_user_url failed to generate from {:action=>"reset_password", :controller=>"users"} - you may have ambiguous routes, or you may need to supply additional parameters for this route. content_url has the following required parameters: ["users", :id, "reset_password"] - are they all satisfied?
我的链接是
<%= link_to "Reset Password",reset_password_user_path(user) %>
然后我收到错误,因为没有操作响应2
Processing UsersController#2 (for 127.0.0.1 at 2011-03-14 11:38:33) [GET]
Parameters: {"action"=>"2", "id"=>"reset_password", "controller"=>"users"}
如何解决这个问题..
答案 0 :(得分:2)
或者<%= link_to "Reset Password", reset_password_user_path(user), :method => "post" %>
假设您有Prototype或jQuery。
这样,您仍然可以在对用户进行更改时发布操作。
答案 1 :(得分:0)
尝试使用get方法而不是路由中的帖子。