我使用设计作为我的应用程序的身份验证机制。
我想向我的用户模型添加其他信息,例如用户统计信息、个人资料图片以及有关用户的其他相关信息。如何实现这一点?
即使在创建“rails g devise:views”之后,它也只会创建我可以自定义的视图,它不会让我编辑它的控制器。
否则我可以编辑设计宝石本身以满足我的要求吗?
我从未尝试过定制 GEM。从自定义现有 gem 开始的任何链接?
我使用设计作为我的应用程序的身份验证机制。
我想向我的用户模型添加其他信息,例如用户统计信息、个人资料图片以及有关用户的其他相关信息。如何实现这一点?
即使在创建“rails g devise:views”之后,它也只会创建我可以自定义的视图,它不会让我编辑它的控制器。
否则我可以编辑设计宝石本身以满足我的要求吗?
我从未尝试过定制 GEM。从自定义现有 gem 开始的任何链接?
Devise 本身是一个 Rails 引擎,您可以通过在本地目录中创建要更改的文件的副本来覆盖它的任何功能。当 Rails 开始为请求寻找合适的控制器时,它将首先检查本地应用程序,然后是供应商/gems,然后是加载的 gem 本身。
在 Devise 的情况下,他们提到修改控制器应该以这种方式完成:
配置控制器
如果视图级别的自定义不够,您可以按照以下步骤自定义每个控制器:
1) 创建您的自定义控制器,例如 Admins::SessionsController:
class Admins::SessionsController < Devise::SessionsController end
2)告诉路由器使用这个控制器:
devise_for :admins, :controllers => { :sessions => "admins/sessions" }
3)由于我们更改了控制器,它不会使用“devise/sessions”视图,所以记得将“devise/sessions”复制到“admin/sessions”。
请记住,Devise 使用 Flash 消息让用户知道登录是成功还是失败。Devise 希望您的应用程序酌情调用“flash[:notice]”和“flash[:alert]”。