验证器之外的验证方法

时间:2016-04-25 23:26:25

标签: ruby-on-rails validation ruby-on-rails-4 design-patterns

如果传递给它们的值满足某些要求,我有一些返回true或false的方法。

这些验证将从几个不同的控制器调用,也可能是不同的模型。

我想这样做而不将它们插入对象并在对象上运行验证。这可能吗?

我是否将所有这些“验证方法”分组到一个类中?如果是这样,该课程在哪里“

1 个答案:

答案 0 :(得分:1)

您可以使用帮助器。这将在控制器,模型和视图页面中提供。

示例:

在“查看页面”中调用

SampleHelper.just_checker({user_object})

如果想在Controller中使用,请将其包含在内。

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