Ruby on rails 为什么';模型中的t属性在Rails SIMPLE中工作

Ruby on rails 为什么';模型中的t属性在Rails SIMPLE中工作,ruby-on-rails,ruby,validation,Ruby On Rails,Ruby,Validation,rails/ruby是新手,所以(我认为)这是一个非常简单的问题。为什么这在我的模型中不起作用 class Subscription < ActiveRecord::Base attribute :email, :validate => /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i end 类订阅/\A([\w\.%\+\-]+)@([\w\-]+\)+([\w]{2,})\z/i 结束 我得到了错误 undefined met

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

class Subscription < ActiveRecord::Base
    attribute :email, :validate => /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i
end
类订阅/\A([\w\.%\+\-]+)@([\w\-]+\)+([\w]{2,})\z/i
结束
我得到了错误

undefined method `attribute' for #<Class:0x00000101218ed0>
未定义的方法“属性”#
模型确实存在,列(或属性?“email”)也存在,因此我必须能够像这样验证其提交

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

尝试:


请参阅:它应该是
validates:email,格式:{with://\A([\w\.%\+\-]+)@([\w\-]+\)+([\w]{2,})\z/i}
class Subscription < ActiveRecord::Base
  validates :email, format: { with: /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i,message: "your validation message" }
end
validates_format_of :email, :with => /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i