我有一个rails应用程序,我想添加字符长度的验证。
它在应用程序的任何地方都使用,其中有text field
,我在应用程序中有很多模型。把模型放在模型中似乎是重复的。
我可以使用任何方法进行单一验证并在模型的任何位置使用它。
我无法解决问题,所以到目前为止我还没有尝试过 非常感谢如果有人能提供答案
答案 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