Rails:NameError:未初始化的常量 OrderItem [英] Rails: NameError: uninitialized constant OrderItem

查看:53
本文介绍了Rails:NameError:未初始化的常量 OrderItem的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

models/order_item.rb

class OrderItem < ActiveRecord::Base    
  belongs_to :item
  belongs_to :order 
  belongs_to :user
end

models/order.rb

 class Order < ActiveRecord::Base   
     has_many :order_item
 end

现在,我使用 rails 控制台 测试这些.当我输入 OrderItem 时,它抛出了

Now, I test those by using rails console. When I typed OrderItem, it threw

NameError: uninitialized constant OrderItem

更新

我在 rails 控制台

2.1.3 :021 >   reload!
Reloading...
 => true 
2.1.3 :022 > Order
 => Order(id: integer, user_id: integer, created_at: datetime, updated_at: datetime, status: integer) 
2.1.3 :023 > Item
 => Item(id: integer, status: integer, name: string, price: integer, descript: text, created_at: datetime, updated_at: datetime, cover_file_name: string, cover_content_type: string, cover_file_size: integer, cover_updated_at: datetime, cate_id: integer) 
2.1.3 :024 > User
 => User(id: integer, email: string, encrypted_password: string, created_at: datetime, updated_at: datetime) 
2.1.3 :025 > OrderItem
NameError: uninitialized constant OrderItem
    from (irb):25
    from /Users/Coda/.rvm/gems/ruby-2.1.3@rails416/gems/railties-4.2.3/lib/rails/commands/console.rb:110:in `start'
    from /Users/Coda/.rvm/gems/ruby-2.1.3@rails416/gems/railties-4.2.3/lib/rails/commands/console.rb:9:in `start'
    from /Users/Coda/.rvm/gems/ruby-2.1.3@rails416/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:68:in `console'
    from /Users/Coda/.rvm/gems/ruby-2.1.3@rails416/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
    from /Users/Coda/.rvm/gems/ruby-2.1.3@rails416/gems/railties-4.2.3/lib/rails/commands.rb:17:in `<top (required)>'
    from /Users/Coda/Desktop/code/ruby_pra/shop/bin/rails:8:in `<top (required)>'
    from /Users/Coda/.rvm/rubies/ruby-2.1.3/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from /Users/Coda/.rvm/rubies/ruby-2.1.3/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from -e:1:in `<main>'

推荐答案

NameError: 未初始化的常量 OrderItem

NameError: uninitialized constant OrderItem

has_many关联名称应该是plural,所以改变has_many :order_itemhas_many :order_itemsorder.rb

The association name for has_many should be plural, so change has_many :order_item to has_many :order_items in order.rb

#order.rb
class Order < ActiveRecord::Base   
  has_many :order_items #plural
end

更新:

查看您在 github 上的代码,order_item.rb 之间有一个空格 即,文件名中的 (order_item .rb)(app/models/order_item .rb).将其更改为 order_item.rb

Looking into your code on github, there is a space between order_item and .rb i.e., (order_item .rb) in the filename(app/models/order_item .rb). Change it to order_item.rb

这篇关于Rails:NameError:未初始化的常量 OrderItem的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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