0

有一些类似的问题,但没有明确的答案。我想使用我能够添加更多字段并将它们存储在用户表中的设计。如果我想在注册过程中收集属于另一个表的数据,是否可以通过设计控制器来完成,或者我必须自己编写一个?

4

1 回答 1

0

你必须使用你自己的。覆盖注册控制器并将其添加到您的路由中,以将您的设计注册指向您的新注册控制器。

# app/controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
  def new
    super
  end

  def create
    # add custom create logic here
    # Strip the fields out of the resource params and save them to 
    # another model then you can call super to have the method behave as it normal:
    super
  end

  def update
    super
  end
end 

然后将其添加到您的路线

# app/config/routes.rb
devise_for :users, :controllers => {:registrations => "registrations"}

根据您构建表单的方式,您可能需要将额外的字段添加到设计模型(通常) -如果必须,User您可以使用它来执行此操作attr_accessor :field_name

于 2013-09-18T22:05:16.990 回答