【问题标题】:why doesn't attribute in a model work in Rails SIMPLE为什么模型中的属性在 Rails SIMPLE 中不起作用
【发布时间】:2014-07-05 14:28:16
【问题描述】:

rails/ruby 新手,所以(我认为)这是一个非常简单的问题。为什么这在我的模型中不起作用

class Subscription < ActiveRecord::Base
    attribute :email, :validate => /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i
end

我得到了错误

undefined method `attribute' for #<Class:0x00000101218ed0>

模型确实存在,列(或属性?)“电子邮件”也是如此,所以我肯定能够像这样验证它的提交。

【问题讨论】:

标签: ruby-on-rails ruby validation


【解决方案1】:

Rails format helper 通过测试它们是否匹配给定的正则表达式来验证属性的值,该正则表达式是使用 :with 选项指定的

试试:

class Subscription < ActiveRecord::Base
  validates :email, format: { with: /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i,message: "your validation message" }
end

如果您使用的是 rails 3.x,那么您需要 validates_format_of

validates_format_of :email, :with => /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-01
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 2020-12-29
    • 2020-02-21
    • 1970-01-01
    相关资源
    最近更新 更多