【发布时间】:2014-04-24 06:51:54
【问题描述】:
我的物品.rb
# encoding: utf-8
class Item < ActiveRecord::Base
attr_accessible :asin, :domain, :formatted_price, :user_id
validate :double_dates
private
def double_dates
if Item.where(:user_id => self.user_id, :asin => self.asin, :domain => self.domain).where("DATE(created_at) = ?", Date.today).length == 1
errors.add(:created_at, "no double dates")
end
end
end
错误信息:
from script/rails:6:in `<main>'irb(main):028:0> Item.new
NoMethodError: undefined method ` validate' for #<Class:0x007fb054ce7690>
from .rvm/gems/ruby-1.9.3-p327/gems/activerecord-3.2.13/lib/active_record/dynamic_matchers.rb:55:in `method_missing'
...
【问题讨论】:
-
您是否在模型中的任何代码更改后重新加载控制台?如果没有,请输入
reload!或退出并再次打开控制台。 -
`validate' 看起来很奇怪是不是 v 之前的某种特殊字符?
-
@apneadiving 嗯.. 这可能是原因。
-
是的,非常感谢 :) 有一些特殊字符,现在可以了 :)
标签: ruby-on-rails ruby-on-rails-3 model model-validation