Ruby on rails创建了一个验证并在任何地方使用它

时间:2016-12-19 07:24:54

标签: ruby-on-rails ruby ruby-on-rails-4

我有一个rails应用程序,我想添加字符长度的验证。

它在应用程序的任何地方都使用,其中有text field,我在应用程序中有很多模型。把模型放在模型中似乎是重复的。

  

我可以使用任何方法进行单一验证并在模型的任何位置使用它

我无法解决问题,所以到目前为止我还没有尝试过 非常感谢如果有人能提供答案

3 个答案:

答案 0 :(得分:1)

您可以创建custom validation

# app/validators/char_validator.rb
class CharValidator < ActiveModel::EachValidator
  def validate_each(record, attribute, value)
    # your validation
  end
end

# app/models/foo.rb
class Foo < ActiveRecord::Base
  validates :bar, presence: true, char: true
end

答案 1 :(得分:1)

一种方法是使用@IBAction func cookact(_ sender: Any){ self.registerType = COOK } @IBAction func buyeract(_ sender: Any){ self.registerType = BUYER } 和自定义验证器类。有关详细信息,请参阅http://guides.rubyonrails.org/active_record_validations.html#validates-with

validates_with

答案 2 :(得分:0)

您可以对此使用问题。您可以将方法放在app/models/concerns文件夹中,例如,作为Validatable模块

module Concerns::Validatable
  extend ActiveSupport::Concern

  def format_website
    Write your validation code here.
  end

end

然后将其包含在每个模型中

include Concerns::Validatable