모델을 정의하는 몇 가지 데이터 마이그레이션이 있습니다. 예를 들면 :
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!
Rack::Reloader.new(MyApp).reload!
가장 확장 가능한 접근 방식이 무엇인지에 대한 생각이 있으십니까?
이 시도
class SomeMigration < ActiveRecord::Migration
class Step < ActiveRecord::Base
end
def change
# operations requiring the Step class
end
end
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다