Ruby on rails 设计编辑密码页面访问用户模型

Ruby on rails 设计编辑密码页面访问用户模型,ruby-on-rails,ruby,devise,Ruby On Rails,Ruby,Devise,我需要自定义设计编辑密码页面,以包括用户模型中包含的一些详细信息 我在网上快速浏览了一下,但找不到任何提到视图可以访问用户模型的文档 有没有办法访问它 编辑:我得到了视图等,它特别是关于在编辑密码页面中访问用户模型。我需要对其进行个性化设置。查看github()上的Desive Wiki,此外,您通常希望在应用程序主页中运行以下命令。 rails g designe:views或特定型号的rails g designe:views modelName 这将在app/views/designe下创

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

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

有没有办法访问它


编辑:我得到了视图等,它特别是关于在编辑密码页面中访问用户模型。我需要对其进行个性化设置。

查看github()上的Desive Wiki,此外,您通常希望在应用程序主页中运行以下命令。
rails g designe:views
或特定型号的
rails g designe:views modelName

这将在app/views/designe下创建视图树

在视图中,将对象称为
resource

<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
...
resource_name,:url=>session_path(resource_name))do | f |%>
...

您可以安全地删除不需要覆盖的视图,如果您想使用haml或slim进行查看,也可以,请参阅此wiki页面=>

查看github()上的Desive wiki,此外,您希望在应用程序主页中运行以下命令。
rails g designe:views
或特定型号的
rails g designe:views modelName

这将在app/views/designe下创建视图树

在视图中,将对象称为
resource

<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
...
resource_name,:url=>session_path(resource_name))do | f |%>
...

您可以安全地删除不需要覆盖的视图,如果您想使用haml或slim作为视图,也可以,查看此wiki页面=>

运行此操作,它会将您的视图复制到一个名为“共享”的文件夹中,用于R运行此操作,它会将您的视图复制到一个名为“共享”的文件夹中,用于R
rails生成设备:视图用户


这将为用户模型生成视图。然后,您可以手动编辑所需的视图。

rails-generate-designe:views-users

= render :template => 'devise/passwords/edit', :locals => {:resource => current_user,:resource_name => User }
这将为用户模型生成视图。然后,您可以手动编辑所需的内容

= render :template => 'devise/passwords/edit', :locals => {:resource => current_user,:resource_name => User }
在视图中尝试此选项 对于设计错误,请包括
设计帮助程序.rb
或编写自己的错误处理程序

在视图中尝试此选项
对于designe\u错误,包括
designe\u helper.rb
或编写您自己的错误处理程序

我也想做同样的事情。我临时将
resource.inspect
放到视图中,看到它是一个用户实例,除了
reset\u password\u token
之外,它的所有属性都是
nil
。鉴于此,我使用暴力访问了相应的用户记录:

User.find_by_reset_password_token(resource.reset_password_token)
或者更一般地说:

resource.class.find_by_reset_password_token(resource.reset_password_token)
您可以在视图中直接使用它,或者如果您要覆盖Desive控制器,则可以将其分配给控制器中的实例变量。请注意,如果令牌无效,它将返回nil。(似乎Desive在用户提交表单之前不会检查令牌的有效性,因此您可以使用无效令牌访问此视图。)

更新日期:2014年3月

从Desive 3.1开始,您需要在查找之前消化令牌:

resource.class.find_by_reset_password_token(Devise.token_generator.digest(resource.class, :reset_password_token, resource.reset_password_token))

我也想做同样的事情。我临时将
resource.inspect
放到视图中,看到它是一个用户实例,除了
reset\u password\u token
之外,它的所有属性都是
nil
。鉴于此,我使用暴力访问了相应的用户记录:

User.find_by_reset_password_token(resource.reset_password_token)
或者更一般地说:

resource.class.find_by_reset_password_token(resource.reset_password_token)
您可以在视图中直接使用它,或者如果您要覆盖Desive控制器,则可以将其分配给控制器中的实例变量。请注意,如果令牌无效,它将返回nil。(似乎Desive在用户提交表单之前不会检查令牌的有效性,因此您可以使用无效令牌访问此视图。)

更新日期:2014年3月

从Desive 3.1开始,您需要在查找之前消化令牌:

resource.class.find_by_reset_password_token(Devise.token_generator.digest(resource.class, :reset_password_token, resource.reset_password_token))

感谢您的回复,但我已经得到了我的模板,问题是如何访问编辑密码(app/views/designe/Password/Edit.html.haml)文件中的用户模型(如模式实例中所示)。用户模型应该作为
资源
干杯。模型当然作为
资源存在,但是,我似乎无法访问模型属性。甚至它的ID都没有。你知道为什么会这样吗?你能发布你的视图和用户模型代码吗?上传到这里:资源输出工作,转储对象哈希,但第二行(我输出用户电子邮件的地方)显示为空,与所有其他属性一样。感谢回复,但我已经得到了我的模板,问题是如何访问编辑密码(app/views/design/Password/Edit.html.haml)文件中的用户模型(如模式实例中的用户模型)。用户模型应该作为
resource
干杯。模型当然作为
资源存在,但是,我似乎无法访问模型属性。甚至它的ID都没有。你知道为什么会这样吗?你能发布你的视图和用户模型的代码吗?上传到这里:资源输出工作,转储对象散列,但第二行(我输出用户电子邮件的地方)显示为空,与所有其他属性相同。