2011-01-11 20 views
7

Kayıtları denetleyicimi Raylar'daki Devise için özelleştirmek istiyorum. Bunu şu şekilde kontrol etmelisiniz:Özel Devreye alma denetleyicisi

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

Bu çok iyi. Ama sonra benim #create eylemimde ne olduğunu tam olarak kontrol etmek istediğimi söyleyelim. Bunu nasıl yaparım? Bir modeli manuel olarak nasıl oluşturabilirim ve tüm paramları iletirim? Account.create (params [: hesap]) sorunsuzca halleder miydi? Bilmem gereken bazı iç şeyler var mı, yoksa #super numaralı eylemi aramak için tek seçeneğim var mı?

cevap

5

Sürece ben Biz bir CRUD ekranda bunu varsayılan tasarlamak zorunlu alanlar, şifre ve password_confirmation

Girişle eminim, sizin örnekte Account.create arayabilir gerekli alanları yerine olarak ,

@admin = Admin.new(params[:admin]) 
if @admin.save 
    redirect_to admin_admins_path, :notice => 'New Administrator has been added' 
else 
    render :action => "new" 
end 

kullanıcıları hazırlamak oluşturma ve Devise oturumu denetleyicisi uzatmak istemiyorum, ApplicationController uzanan normal kontrolör gayet veya Devise :: RegistrationsController uzatmak ve bir registrations_controller.rb üzerinde bazı değişiklikler istediğiniz yöntemleri üzerine yazabilirsiniz dosya

Eğer işleri düzgün basan ve herhangi bir işleme kaçırmamanız olmak emin olmak istiyorsanız
+0

, Github kaynakta bir göz atabilirsiniz , Teşekkürler. SessionsController bir copypaste yazım hatasıydı, bunun RegistrationsController olması gerektiğini anlıyorum. – snitko

İlgili konular