【问题标题】:NoMethodError: undefined method ` validate' (custom validate) RAILS 3NoMethodError:未定义的方法“验证”(自定义验证)RAILS 3
【发布时间】: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


【解决方案1】:

既然回答了,那就贴一个真实的答案吧:

`validate' 看起来很奇怪,必须删除 v 之前的特殊字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多