2011-01-11 84 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

相關問題