2011-01-11 82 views
7

我想为Devise in Rails定制我的注册控制器。我知道你必须创建一个这样的控制器:自定义设计控制器

class AccountsController < Devise::SessionsController 
    def create 
    super 
    end 
end 

嗯,这一切都很好。但是,假设我想完全控制我的#create操作中发生的情况。我怎么做?我如何手动创建模型并将其传递给所有参数? Account.create(params [:account])能否顺利处理?是否有一些内部的事情我应该知道或者是我唯一的选择在行动内部拨打#super

回答

5

只要你满足你的需要的字段,你可以打电话Account.create在你的榜样,我敢肯定,默认的设计必填字段登录名,密码和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 

,你不希望扩展设计会话控制器,扩展的ApplicationController正常的控制器是罚款,也可以扩展设计:: RegistrationsController并覆盖要在registrations_controller.rb来调整方法文件

+0

是, 谢谢。 SessionsController是一个copypaste错字,我知道它应该是RegistrationsController。 – snitko 2011-01-11 08:40:46

相关问题