设计和单独的用户表

时间:2012-11-19 13:39:43

标签: ruby-on-rails ruby-on-rails-3 authentication devise

我正在开发使用设计进行身份验证的rails 3.2应用程序。

对于与应用程序无关的目标(主要是统计信息),我需要创建一个单独的用户表(我们称之为alt_users),它只包含users表的某些字段(名称,电子邮件和其他一些字段)但没有密码摘要和其他敏感信息。如果用户修改了他的帐户或将其删除,也不必修改此记录。

我的想法是,当用户注册时,在设计完成作业之前,会在alt_users表中插入一些选定的字段。

为了实现这一目标,覆盖设计行为的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以通过以下方式覆盖Devise的RegistrationsController:

在您的routes.rb中:

devise_for :users, :controllers => {:registrations => "registrations"}

然后创建文件app / controllers / registrations_controller.rb:

# app/controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController

  def create
    # add your data to alt_users here
    super
  end

end 

另外,如果你可以避免重写Devise的控制器,那将是最好的。 尝试考虑其他选项,例如用户模型上的before_create回调。