ruby ​​on rails, имеет_много, определите имя класса для полиморфных отношений

Это мой код для перемещения данных из моей старой базы данных:

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

Когда я запускаю следующий код

Old::Recipe.all.each do |recipe|
  puts recipe.uploaded_files.to_sql
end

Он выполняет этот SQL

SELECT `uploaded_files`.* FROM `uploaded_files`  WHERE `uploaded_files`.`storage_id` = 38 AND `uploaded_files`.`storage_type` = 'Old::Recipe'

Проблема в том, что я получаю:

`storage_type` = 'Old::Recipe'

Но мне нужно:

`storage_type` = 'Recipe'

Как я могу изменить класс для полиморфной связи?

Документ дляhas_manyне дает мне ответа.

5
задан pnuts 5 November 2015 в 21:28
поделиться