我有一些定义模型的数据迁移。例如:
<group android:checkableBehavior="single">
<item
android:id="@+id/mybooks"
android:title="My Books"
/>
<item
android:id="@+id/myInfo"
android:title="Info" />
<item
android:id="@+id/myfriends"
android:title="My Friends" />
<item
android:id="@+id/myQuiz"
android:title="Game" />
<item
android:id="@+id/myHobby"
android:title="Hobbies" />
</group>
:
db/migrate/19600000000000_some_migration.rb
当我在迁移后立即运行种子时
class Step < ActiveRecord::Base
end
class SomeMigration < ActiveRecord::Migration
def change
# operations requiring the Step class
end
end
重新定义的rake db:migrate db:seed
类仍在内存中。但我需要最初在Step
中定义的Step
类,因为我的种子依赖于那里的方法,否则它会无声地失败。
我可以想到一些事情,但它们都不理想:
app/models/step.rb
require 'app/models/step.rb'
Dir["#{File.dirname(__FILE__)}/app/models/**/*.rb"].each { |f| load(f) }
和rake db:migrate
我试图寻找在播种后重新加载整个环境的方法,但它们似乎都不起作用:
rake db:seed
ActionDispatch::Reloader.cleanup!
对最具扩展性的方法有什么想法?
答案 0 :(得分:1)
试试这个
class SomeMigration < ActiveRecord::Migration
class Step < ActiveRecord::Base
end
def change
# operations requiring the Step class
end
end