sni*_*tko 7 ruby-on-rails controllers devise
我想为Devise in Rails自定义我的注册控制器.我知道你必须创建一个像这样的控制器:
class AccountsController < Devise::SessionsController
def create
super
end
end
Run Code Online (Sandbox Code Playgroud)
嗯,这一切都非常好.但是,让我们说我想完全控制我的#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
Run Code Online (Sandbox Code Playgroud)
并且你不想扩展Devise会话控制器,扩展ApplicationController的普通控制器很好,或者你可以扩展Devise :: RegistrationsController并覆盖你想在registrations_controller.rb文件中调整的方法