gpt4 book ai didi

ruby-on-rails - Rails 模型验证 : i need validates_inclusion_of with case sensitive false?

转载 作者:行者123 更新时间:2023-12-04 17:57:36 25 4
gpt4 key购买 nike

这是不起作用的代码

    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

只需将它放在你的 config/application.rb 中,确保 rails 在启动时加载这个 lib 文件:
config.autoload_paths += Dir["#{config.root}/lib/**/"]  

关于ruby-on-rails - Rails 模型验证 : i need validates_inclusion_of with case sensitive false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5413266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com