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

ruby-on-rails – Rails模型验证:我需要validates_inclusion_of

发布时间:2020-12-17 02:41:16 所属栏目:百科 来源:网络整理
导读:这是无效的代码 class WeekDay ActiveRecord::Base validates_inclusion_of :day,:in = %w(sunday monday tuesday wednesday thursday friday saturday),:case_sensitive = false end 目前我在数据库中的所有日子除了星期日.我试图添加“星期日”,并获得错误
这是无效的代码

class WeekDay < ActiveRecord::Base
           validates_inclusion_of :day,:in => %w(sunday monday tuesday wednesday thursday friday saturday),:case_sensitive => false
    end

目前我在数据库中的所有日子除了星期日.我试图添加“星期日”,并获得错误“不包括在列表中”.

解决方法

validates_inclusion_of没有case_sensitive参数,因此您可以创建自己的验证器(如果您使用的是Rails 3):

class DayFormatValidator < ActiveModel::EachValidator
  def validate_each(object,attribute,value)
    unless %w(sunday monday tuesday wednesday thursday friday saturday).include?(value.downcase)
      object.errors[attribute] << (options[:message] || "is not a proper day.") 
    end
  end
end

并将其保存在lib目录中:

lib/day_format_validator.rb

然后在您的模型中,您可以:

validates :day,:day_format => true

只需确保rails在启动时加载此lib文件,方法是将它放在config / application.rb中:

config.autoload_paths += Dir["#{config.root}/lib/**/"]

(编辑:李大同)

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

    推荐文章
      热点阅读