加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何获取ActiveRecord验证中配置的最大长度?

发布时间:2020-12-16 19:58:59 所属栏目:百科 来源:网络整理
导读:给出一个模型: class Person validates_lenght_of :name,:maximum = 50end 我有一些视图代码显示倒计时并强制执行此最大值.但是,我将50号硬编码到该视图代码中.有没有办法从模型中提取这个数字? 就像是: Person.maximum_length_of_name 我试过这个: Pers
给出一个模型:
class Person
  validates_lenght_of :name,:maximum => 50
end

我有一些视图代码显示倒计时并强制执行此最大值.但是,我将50号硬编码到该视图代码中.有没有办法从模型中提取这个数字?

就像是:

Person.maximum_length_of_name

我试过这个:

Person.validators_on(:name)
 => [#<ActiveRecord::Validations::UniquenessValidator:0x000001067a9840 @attributes=[:name],@options={:case_sensitive=>true},@klass=Trigger(id: integer,name: string,created_at: datetime,updated_at: datetime,user_id: integer,slug: string,last_update_by: integer)>,#<ActiveModel::Validations::PresenceValidator:0x000001067a6c30 @attributes=[:name],@options={}>,#<ActiveModel::Validations::LengthValidator:0x000001067a3f08 @attributes=[:name],@options={:tokenizer=>#<Proc:0x00000101343f08@/Users/sjors/.rvm/gems/ruby-1.9.2-p0/gems/activemodel-3.0.6/lib/active_model/validations/length.rb:9 (lambda)>,:maximum=>50}>]

信息在那里,但我不知道如何提取它:

解决方法

使用 validators_on方法
irb(main):028:0> p Person.validators_on(:name)[0].options[:maximum]
50
=> 50

正如@Max Williams所说,它只适用于Rails 3

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读