我想为Devise in Rails自定义我的注册控制器.我知道你必须创建一个像这样的控制器:
class AccountsController < Devise::SessionsController def create super end end
嗯,这一切都非常好.但是,让我们说我想完全控制我的#create动作中发生的事情.我怎么做?如何手动创建模型并将其传递给所有参数? Account.create(params [:account])会顺利处理吗?是否有一些内部事情正在发生我应该知道或者是我唯一的选择在行动中调用#super?
解决方法
只要您满足必填字段,您可以在示例中调用Account.create,我很确定默认的Devise必填字段是login,password和password_confirmation
我们在CRUD屏幕中执行此操作以创建设计用户,
@admin = Admin.new(params[:admin]) if @admin.save redirect_to admin_admins_path,:notice => 'New Administrator has been added' else render :action => "new" end
并且您不想扩展Devise会话控制器,扩展ApplicationController的普通控制器很好,或者您可以扩展Devise :: RegistrationsController并覆盖您想要在registrations_controller.rb文件中调整的方法