我需要自定义Devise编辑密码页面,以包含用户模型中包含的一些详细信息。
我在网上看了一下,但找不到任何提及可以访问用户模型的视图的文档。
有没有办法访问它?
编辑:我已经获得了视图等,它具体是关于在编辑密码页面中访问用户模型。我需要个性化它。
答案 0 :(得分:1)
= render :template => 'devise/passwords/edit', :locals => {:resource => current_user,:resource_name => User }
在视图中尝试此操作
对于devise_errors包括devise_helper.rb
或编写自己的错误处理程序
答案 1 :(得分:0)
在github(https://github.com/plataformatec/devise/wiki)上查看devise Wiki,此外你最想做的是在app home中运行以下命令。
rails g devise:views
或特定模型rails g devise:views modelName
将在app / views / devise下创建视图树。
在视图中,将对象称为resource
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
...
你可以安全地删除你不需要过度骑行的视图,如果你想使用haml或slim视图,那也没关系,请参阅此wiki页面=&gt; https://github.com/plataformatec/devise/wiki/How-To:-Create-Haml-and-Slim-Views
答案 2 :(得分:0)
运行此操作,它会将您的视图复制到名为'shared'的文件夹中,用于R&lt; 3和'devise'用于R3。
rails g devise:views
然后,您可以自定义视图。你应该能够理解那些volders中的所有东西,它只是Rails MVC的东西。
如果您有特定的设计模型,则应按名称指定模型:
rails g devise:views users
答案 3 :(得分:0)
rails generate devise:views users
这将生成用户模型的视图。然后,您可以手动编辑所需的那些。
答案 4 :(得分:0)
我想做同样的事情。我暂时将resource.inspect
放入视图中,并看到它是一个包含所有属性nil
的用户实例,但reset_password_token
除外。鉴于此,我使用强力访问相应的用户记录:
User.find_by_reset_password_token(resource.reset_password_token)
或者更通用:
resource.class.find_by_reset_password_token(resource.reset_password_token)
如果要覆盖Devise控制器,可以直接在视图中使用它,或将其分配给控制器中的实例变量。请注意,如果令牌无效,它将返回nil。 (在用户提交表单之前,似乎Devise不会检查令牌的有效性,因此您可以使用无效令牌访问此视图。)
2014年3月更新
从设计3.1开始,您需要在查找之前消化令牌:
resource.class.find_by_reset_password_token(Devise.token_generator.digest(resource.class, :reset_password_token, resource.reset_password_token))