2013-10-02 120 views
1

我有一个类型的迁移经常发生的基类:Rails的迁移继承不工作

class AddEventsBaseMigration < ActiveRecord::Migration 
    #ITEMS = [] 

    def up 
    #add the items 
    end 

    def down 
    #remove the items that were added. 
    end 
end 

然后,当它的时间来添加新的东西,我创建了一个继承迁移:

class AddEvents0930 < AddEventsBaseMigration 
    ITEMS = [ ... ] 
end 

rake aborted! 
uninitialized constant AddEventsBaseMigration 
C:/.../Source/db/migrate/20131002152826_add_events_0930.rb:1 
c:0:in `migrate' 
Tasks: TOP => db:migrate:up 

我在做什么错在这里:

当我尝试运行此迁移,我得到这个错误?

红宝石: 1.8.7(2013年6月27日PATCHLEVEL 374)[I386-的mingw32]

滑轨: 3.2.13

编辑:我忘了提及,我已经试过:

require "add_events_base_migration" 
require "./add_events_base_migration" 
require "/db/migrate/add_events_base_migration" 

而我得到的错误:no such file to load -- /db/migrate/add_events_base_migration

+1

也许你需要明确添加'requi在文件的开头重新加入'/ add_events_base_migration'或'require'/ db/migrations/add_events_base_migration''? – Baldrick

+0

我应该提到我已经尝试过。 –

回答

0

你应该尝试:

require_relative "add_events_base_migration" 

例如,如果您有测试下他们在“测试”目录单元测试类和数据“的测试/数据”目录下,然后你可以使用像线这在一个测试用例:

require_relative "data/customer_data_1" 

如果你在Ruby 1.8中,你可能需要使用这个库:

https://github.com/steveklabnik/require_relative

+0

我刚试过,我得到'未定义的方法'require_relative'为main:Object' ...? –

+0

更新了我的答案。 –

+0

为什么我必须这样做才能继承其他课程?这是不是内置到ruby/rails? –