渡された値が特定の要件を満たしている場合、trueまたはfalseを返すメソッドがいくつかあります。バリデーター以外のバリデーションメソッド
これらの検証は、いくつかの異なるコントローラから呼び出され、場合によっては異なるモデルからも呼び出されます。
私はこれをオブジェクトに差し込み、オブジェクトに対して検証を実行することなく、この作業を行いたいと思います。これは可能ですか?
これらの「検証方法」をすべてクラスに分類していますか?もしそうなら、どこそのクラスは
渡された値が特定の要件を満たしている場合、trueまたはfalseを返すメソッドがいくつかあります。バリデーター以外のバリデーションメソッド
これらの検証は、いくつかの異なるコントローラから呼び出され、場合によっては異なるモデルからも呼び出されます。
私はこれをオブジェクトに差し込み、オブジェクトに対して検証を実行することなく、この作業を行いたいと思います。これは可能ですか?
これらの「検証方法」をすべてクラスに分類していますか?もしそうなら、どこそのクラスは
あなたはそのためのヘルパーを使用することができ、「行くんそれは、コントローラ、モデルとビューページで利用できるようになります
サンプル:。。
ビューページでコールする
コントローラで使用したい場合は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
このモジュールはどこに保存しますか? –
'app/helpers/sample_helper.rb' – 7urkm3n
このディレクトリをオートロードパスに追加する必要がありますか?デフォルトでロードされていますか? –
あなたがそれらに反対しているように思えるが、これは正確に[カスタムバリデータオブジェクトを] Railsのもののように思えます(http://www.rails-dev.com/custom-validators-in-ruby-on-rails-4)はのためのものです。それらは 'app/validators'に格納されます。 – steel
なぜカスタムバリデータを使用したくないですか? –