Rails种子循环依赖性错误

时间:2014-05-25 19:20:10

标签: ruby-on-rails ruby activerecord ruby-on-rails-4

我今天将Rails更新为Rails 4.1(从4.0开始),现在我的seed.rb不再起作用了,这就是问题所在:

这一行

ActiveRecord::FixtureSet.create_fixtures("#{Rails.root}/test/fixtures", "marketplace_categorias")

给我这个错误:

rake aborted!
Circular dependency detected while autoloading constant MarketplaceCategoria

但在控制台上,同一行给了我这个:

LoadError: Unable to autoload constant MarketplaceCategoria, expected /home/user/Documents/wsrails/myproject/app/models/marketplace/marketplace_categoria.rb to define it

正如您所看到的,我有一个命名空间模型,定义如下

class Marketplace::MarketplaceCategoria < ActiveRecord::Base
self.table_name = 'marketplace_categorias'
....
end

所以Rails试图自动加载错误的常量,它应该加载Marketplace :: MarketplaceCategoria,而不是MarketplaceCategoria。

添加,我可以通过控制台创建记录,没有任何问题,当我在控制台上运行命令时:

Marketplace::MarketplaceCategoria.table_name
=>"marketplace_categorias" 

向我显示正确的表名。

我在这里做错了什么?

plus:我的迁移

class MarketplaceCategoria < ActiveRecord::Migration
  def change
    create_table :marketplace_categorias do |t|
       t.string :nome
       t.string :slug, :unique => true 
       t.timestamps
    end
    add_index :marketplace_categorias, :slug,   :unique => true
  end
end

0 个答案:

没有答案