#ruby-on-rails #carrierwave #polymorphism
#ruby-on-rails #carrierwave #полиморфизм
Вопрос:
я продолжаю получать ActiveRecord::UnknownAttributeError:
неизвестный атрибут: imageable_id
код:
полиморфная модель изображения:
class Image < ActiveRecord::Base
mount_uploader :asset, ImageUploader
belongs_to :imageable, :polymorphic => true
end
модель, которая пытается создать полиморфную ассоциацию для 2 разных типов изображений:
has_one :image, :as => :imageable, :dependent => :destroy
accepts_nested_attributes_for :image
has_one :thumbnail, :as => :imageable, :dependent => :destroy
accepts_nested_attributes_for :thumbnail
действие контроллера, которое пытается построить изображения (на самом деле срабатывает первое «build_image», ошибка ссылается на «build_thumbnail»:
def new
@item = @item_class.new #item is instantiated elsewhere
@item.build_image #this works
@item.build_thumbnail #this throws my error "unknown attribute: imageable_id"
end
Спасибо!
ИСПРАВЛЕНО РЕДАКТИРОВАНИЕ
Комментарии:
1. Я думаю , что вам нужно добавить параметр :class_name => Image к связи has_one : thumbnail, но я не публикую формальный ответ, потому что у меня нет времени на тестирование 🙂
2. @Chris: я согласен! вы должны опубликовать это в качестве ответа
Ответ №1:
Вам просто нужно добавить параметр :class_name => Image в отношение has_one :thumbnail. (спасибо, что проверил меня @Tilo)