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都没有。你知道为什么会这样吗?你能发布你的视图和用户模型的代码吗?上传到这里:资源输出工作,转储对象散列,但第二行(我输出用户电子邮件的地方)显示为空,与所有其他属性相同。