Forum:Module 的未定义方法`scoped' [英] undefined method `scoped' for Forum:Module

查看:57
本文介绍了Forum:Module 的未定义方法`scoped'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在开发一个基于论坛怪物演示的简单论坛.我目前正在尝试将应用程序从 rails 3.0.9 更新到 3.2.11.当我加载应用程序时,我为 Forum:Module 获得了一个未定义的方法scoped"

I have been working on a simple forum based on forum monster demo. I am currently trying to update the application from rails 3.0.9 to 3.2.11. When I load the application I get a undefined method `scoped' for Forum:Module

Extracted source (around line #13):
10:         <%= link_to "Delete Category", category_path(category), :confirm => "Are you sure you want to delete this category?", :method => :delete if can? :manage, category %>
11:       </span>
12:     </div>
13:     <% if category.forums.size > 0 %>
14:     <div>
15:       <table>
16:         <tr class="smaller">

这是我的论坛模型

class Forum < ActiveRecord::Base

  # Associations
  has_many :topics, :dependent => :destroy
  has_many :posts, :through => :topics

  belongs_to :category

  # Accessors
  attr_accessible :title, :description, :state, :position, :category_id

  # Scopes
  default_scope :order => :'position ASC'

  # Validations
  validates :title,       :presence => true
  validates :description, :presence => true
  validates :category_id, :presence => true
end

这是我在控制台中摸索的经验

Here is what I learned from poking around in the console

ricky ~/forum $ rails console   
Loading development environment (Rails 3.2.11)
irb(main):001:0> Category.all.size
  Category Load (0.4ms)  SELECT `categories`.* FROM `categories` ORDER BY position ASC
=> 2
irb(main):002:0> Category.all.each do |cat|
irb(main):003:1* puts cat.forums.size
irb(main):004:1> end
  Category Load (0.6ms)  SELECT `categories`.* FROM `categories` ORDER BY position ASC
NoMethodError: undefined method `scoped' for Forum:Module
    from /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.2.11/lib/active_record/associations/association.rb:123:in `target_scope'
    from /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.2.11/lib/active_record/associations/association.rb:87:in `scoped'
    from /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.2.11/lib/active_record/associations/has_many_association.rb:41:in `count_records'
    from /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.2.11/lib/active_record/associations/collection_association.rb:261:in `size'
    from /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.2.11/lib/active_record/associations/collection_proxy.rb:46:in `size'
    from (irb):3:in `block in irb_binding'
    from (irb):2:in `each'
    from (irb):2
    from /usr/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:47:in `start'
    from /usr/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:8:in `start'
    from /usr/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'
irb(main):005:0> puts Forum.all.size
NoMethodError: undefined method `all' for Forum:Module
    from (irb):5
    from /usr/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:47:in `start'
    from /usr/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:8:in `start'
    from /usr/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'
irb(main):006:0>

预先感谢您对此问题性质的任何煽动.

Thanks in advance for any incite about the nature of this issue.

推荐答案

您的论坛"模型类的名称与您的 config/application.rb 中的模块完全相同

Your 'Forum' model class is named exactly the same as module in your config/application.rb

重命名您的模型或应用程序.

Rename your model or application.

这篇关于Forum:Module 的未定义方法`scoped'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆