2016-05-16 6 views
1

プロファイルにサインインして編集するときに、ユーザーモデル内のメソッドを呼び出して、さまざまなバリデーションのセットを有効または無効にする必要があります。 Deviseのサインアップと登録の方法を完全に無効にすることなく、これを行う方法はありますか?私はむしろそれをしないだろう。ユーザーのメソッドを呼び出す前にDeviseにサインアップまたは登録

私はRuby 2.3.1、Rails 4.2、およびDevise 4.1を使用しています。

答えて

2

最も簡単な方法は工夫がカスタマイズを可能にするためにかなりの区画であるよう工夫コントローラのサブクラスを作成することがあります

class User < ActiveRecord::Base 

    validates :some_attribute, unless: :trusted? 

    def trusted? 
    [email protected] 
    end 

    def trusted! 
    @trusted = true 
    end 
end 

class MyApp::RegistrationsController < Devise::RegistrationController 
    def build_resource(hash=nil) 
    self.resource = resource_class.new_with_session(hash || {}, session) 
    self.resource.trusted! 
    end 
end 

# config/routes.rb 
devise_for :users, :controllers => {:registrations => "my_app::registrations"} 
関連する問題