如何获取设计密码页面的路由?

时间:2016-04-28 23:05:23

标签: ruby-on-rails ruby devise

尝试使用

在rails应用程序上获取设计密码页面的路径
devise_for :users, path_names: {
    password: 'secret'
}

但它没有回复它,任何想法?

1 个答案:

答案 0 :(得分:0)

rake routes 

将运行devise提供的所有路由。如果你想访问设计密码选项(IE编辑密码,确认密码,输入密码等)去设计,资源,编辑和查找form_for。您实际上可以使用这些资源并将自己的资源添加到多个视图中。直接从设计github引用这个..

默认情况下,Devise允许用户使用:registerable模块更改密码。但有时,开发人员希望创建其他操作,允许用户在不需要密码的情况下更改其信息。在这种情况下,最好的选择是创建属于您的应用程序的控制器,并提供编辑和更新操作,就像对应用程序中的任何其他资源一样。

请注意,虽然限制了您允许更改的参数。特别是,您可能只想允许用户数据字段,并避免更改电子邮件,密码和此类信息:

params[:user].permit(:first_name, :last_name, :address)

另一种解决方案是简单地覆盖"更新资源"注册控制器中的方法如下:

class RegistrationsController < Devise::RegistrationsController

  protected

  def update_resource(resource, params)
    resource.update_without_password(params)
  end
end

使用此解决方案时,您需要告诉devise在routes.rb中使用您的控制器:

devise_for :users, controllers: {registrations: 'registrations'}

最后,如果您使用设计生成了视图,请删除&#39; current_password&#39;的相应表单输入。在app/views/devise/registrations/edit.html.erb