【问题标题】:validation doesn't work activesupport-3.2.13 error验证不起作用 activesupport-3.2.13 错误
【发布时间】:2013-04-16 14:25:43
【问题描述】:

安装 rvm、ruby 和 rails 后,我在我的模型中编写了相同的代码验证

class Item < ActiveRecord::Base
  attr_accessible :name, :description, :price, :weight
  validates :price, :weight, numericality: {greater_than: 0} , presence: true 
end

但是当我启动 rails 控制台并打印时

tem1 = Item.create(name: "d", price: 0, weight: 1) 

我有错误

Loading development environment (Rails 3.2.13)
2.0.0p0 :001 > item1 = Item.create(name: "d", price: 0, weight: 1)
NoMethodError: undefined method `validates' for #<Class:0x007ffa968ec810>
    from /Users/epoleshchuk/RailsProject/test2/vendor/bundle/gems/activerecord-3.2.13/lib/active_record/dynamic_matchers.rb:55:in `method_missing'
    from /Users/epoleshchuk/RailsProject/test2/app/models/item.rb:5:in `<class:Item>'
    from /Users/epoleshchuk/RailsProject/test2/app/models/item.rb:1:in `<top (required)>'
    from /Users/epoleshchuk/RailsProject/test2/vendor/bundle/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:469:in `load'
    from /Users/epoleshchuk/RailsProject/test2/vendor/bundle/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:469:in `block in load_file'
    from /Users/epoleshchuk/RailsProject/test2/vendor/bundle/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:639:in `new_constants_in'
    from /Users/epoleshchuk/RailsProject/test2/vendor/bundle/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:468:in `load_file'
    from /Users/epoleshchuk/RailsProject/test2/vendor/bundle/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:353:in `require_or_load'
    from /Users/epoleshchuk/RailsProject/test2/vendor/bundle/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:502:in `load_missing_constant'
    from /Users/epoleshchuk/RailsProject/test2/vendor/bundle/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:192:in `block in const_missing'
    from /Users/epoleshchuk/RailsProject/test2/vendor/bundle/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:190:in `each'
    from /Users/epoleshchuk/RailsProject/test2/vendor/bundle/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:190:in `const_missing'
    from (irb):1
    from /Users/epoleshchuk/RailsProject/test2/vendor/bundle/gems/railties-3.2.13/lib/rails/commands/console.rb:47:in `start'
    from /Users/epoleshchuk/RailsProject/test2/vendor/bundle/gems/railties-3.2.13/lib/rails/commands/console.rb:8:in `start'
    from /Users/epoleshchuk/RailsProject/test2/vendor/bundle/gems/railties-3.2.13/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'
    from scexit

也 gem install activesupport -v 3.2.13 对我没有帮助。

导轨 3.2.13 ruby 2.0.0p0(2013-02-24 修订版 39474)[x86_64-darwin12.3.0] rvm 1.19.3(稳定)

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3


    【解决方案1】:

    仔细阅读您的错误:

    undefined method `validates' 
    

    您在 validates 之前似乎有一些奇怪的 Unicode 字符,您需要将其删除。

    【讨论】:

    • 非常感谢你,我在我的模型头部输入#coding: utf-8 就可以了!
    【解决方案2】:

    即使我在 启动 Rails 服务器。 这可能是由于在控制器或模型类文件中错误添加了一些单词。检查您的应用程序以查看是否在不知不觉中添加了“验证”一词,尤其是在类定义之前和之后。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-10
      • 2016-07-24
      • 2018-01-23
      • 1970-01-01
      • 2013-04-10
      相关资源
      最近更新 更多