To jest mój kod do przenoszenia danych ze starego bazy danych:Ruby on Rails, has_many zdefiniować nazwę klasy dla polimorficznych relacji
class Old < ActiveRecord::Base
establish_connection :old_version
self.abstract_class = true
class Recipe < self
set_table_name :recipes
has_many :uploaded_files, :as => :storage
end
class UploadedFile < self
set_table_name :uploaded_files
belongs_to :storage, :polymorphic => true
end
end
Kiedy uruchomić następujący kod
Old::Recipe.all.each do |recipe|
puts recipe.uploaded_files.to_sql
end
on wykonuje to SQL
SELECT `uploaded_files`.* FROM `uploaded_files` WHERE `uploaded_files`.`storage_id` = 38 AND `uploaded_files`.`storage_type` = 'Old::Recipe'
problemem jest to, że otrzymujemy:
`storage_type` = 'Old::Recipe'
Ale muszę:
`storage_type` = 'Recipe'
Jak mogę zmienić klasę na polimorficznych związku?
Dokument dla has_many
nie daje mi odpowiedzi.
czy istnieje powód, dla którego klasa Receptura jest zagnieżdżona wewnątrz Starej klasy? – pixeltrix
Być może został on przeniesiony do Rails Engine @pixeltrix. Czy ktoś ma lepszą odpowiedź? – Jwan622