Este es mi código para mover datos de mi antigua base de datos:Ruby on Rails, has_many, definir nombre de la clase de relación polimórfica
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
Cuando ejecuto el siguiente código
Old::Recipe.all.each do |recipe|
puts recipe.uploaded_files.to_sql
end
Realiza esta SQL
SELECT `uploaded_files`.* FROM `uploaded_files` WHERE `uploaded_files`.`storage_id` = 38 AND `uploaded_files`.`storage_type` = 'Old::Recipe'
El problema es que me sale:
`storage_type` = 'Old::Recipe'
pero necesito:
`storage_type` = 'Recipe'
¿Cómo puedo cambiar la clase para una relación polimórfica?
El doc para has_many
no me da una respuesta.
¿Hay alguna razón por la cual la clase Recipe está anidada dentro de la clase Old? – pixeltrix
Quizás esto se haya trasladado a Rails Engine @pixeltrix. Alguien tiene una mejor respuesta para esto? – Jwan622