0

渡された値が特定の要件を満たしている場合、trueまたはfalseを返すメソッドがいくつかあります。バリデーター以外のバリデーションメソッド

これらの検証は、いくつかの異なるコントローラから呼び出され、場合によっては異なるモデルからも呼び出されます。

私はこれをオブジェクトに差し込み、オブジェクトに対して検証を実行することなく、この作業を行いたいと思います。これは可能ですか?

これらの「検証方法」をすべてクラスに分類していますか?もしそうなら、どこそのクラスは

+1

あなたがそれらに反対しているように思えるが、これは正確に[カスタムバリデータオブジェクトを] Railsのもののように思えます(http://www.rails-dev.com/custom-validators-in-ruby-on-rails-4)はのためのものです。それらは 'app/validators'に格納されます。 – steel

+0

なぜカスタムバリデータを使用したくないですか? –

答えて

1

あなたはそのためのヘルパーを使用することができ、「行くんそれは、コントローラ、モデルとビューページで利用できるようになります

サンプル:。。

ビューページでコールする

コントローラで使用したい場合は
SampleHelper.just_checker({user_object}) 

は、それが含まれる。

include SampleHelper 

ヘルパー/ sample_helper.rb

module SampleHelper 

    class << self 
    def just_checker(user) 
     check_admin(user) 
    end 
    end 

    def check_admin(user) 
    redirect_to root_url unless user.admin 
    end 

    # lets use it in controller with before_action 
    def check_admin_with_current_user 
    redirect_to root_url unless current_user.admin 
    end 
end 

samples_controller.rb

class SamplesController < ApplicationController 
include SampleHelper 
before_action :check_admin_with_current_user, only: :destroy 

    def destroy 
    #... 
    end 
end 
+0

このモジュールはどこに保存しますか? –

+0

'app/helpers/sample_helper.rb' – 7urkm3n

+0

このディレクトリをオートロードパスに追加する必要がありますか?デフォルトでロードされていますか? –

関連する問題