我确信这是RoR中的一个基本问题,但我添加了一个名为hooods_one_providers的新表。该表没有相应的模型 - 它应该连接两个模型 - 提供商和引擎盖。我试图在控制台中调用它,但改为 - 未初始化的常量。
当我跑步时:
ActiveRecord::Base.connection.tables
=> ["schema_migrations", "users", "roles", "users_roles", "providers", "food_items", "food_items_users", "feedbacks", "addresses", "carts", "link_carts", "hoods", "drink_items", "addons_ons", "addons_nears", "customize_foods", "addresses_hoods", "hoods_one_providers"]
我可以看到桌子,但我无法从中读到。当我运行hooods_one_providers时,我得到了未初始化的常量错误:
NameError: uninitialized constant HoodsOneProvider
from (irb):14
from /home/ido/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands/console.rb:47:in `start'
from /home/ido/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands/console.rb:8:in `start'
from /home/ido/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
在模型提供者中我有:
has_and_belongs_to_many :hoods_one, class_name: 'HoodsOne'
在模特罩中,我有:
has_and_belongs_to_many :providers
将不胜感激任何帮助。 感谢
答案 0 :(得分:1)
如果您在控制台运行时添加了表,则控制台已经缓存了这些类。运行reload!
应该可以解决问题,但如果没有,则应重新启动控制台。
更新:
您正在使用has_and_belongs_to_many,需要您手动创建联接表。
更新:创建联接表
创建一个包含以下内容的迁移来创建连接表。 id: false
选项告诉它不要创建id
列
create_table :hoods_ones_providers, id: false do |t|
t.references :hoods_one, :provider
end
add_index :hoods_ones_providers, [:hoods_one_id, :provider_id]
答案 1 :(得分:0)
以下任何一种情况都可能发生这种情况
reload!
应该可以解决。rails c
hoods_one_providers
,那么模型下应该有 hoods_one_providers.rb
文件。