设计编辑密码页面 - 访问用户模型

时间:2011-05-23 05:07:36

标签: ruby-on-rails ruby devise

我需要自定义Devise编辑密码页面,以包含用户模型中包含的一些详细信息。

我在网上看了一下,但找不到任何提及可以访问用户模型的视图的文档。

有没有办法访问它?

编辑:我已经获得了视图等,它具体是关于在编辑密码页面中访问用户模型。我需要个性化它。

5 个答案:

答案 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))