Динамический class_name для has_many отношений

Я пытаюсь сделать has_many отношение с динамическим атрибутом class_name

class Category < ActiveRecord::Base
  has_many :ads, :class_name => ( lambda { return self.item_type } ) 
end

или

class Category < ActiveRecord::Base
  has_many :ads, :class_name => self.item_type
end

Но я получил ошибки:

can't convert Proc into String

или

undefined method `item_type' for #<Class:0xb62c6c88>

РЕДАКТИРОВАНИЕ у меня есть два различных типов Рекламы

LeaseAd, RentAd они реализовали использующее единственное наследование таблицы

Затем я имею Category из рекламы, как вложено установлено. Я хотел бы указать dinamicly, которому принадлежит тип рекламы Category объект.

Спасибо за любую справку!

7
задан vooD 15 June 2010 в 21:52
поделиться

1 ответ

can't convert Proc into String

означает, что rails ожидает String

undefined method `item_type' for #<Class:0xb62c6c88>

означает, что вы не определили item_type для Class-object

Я считаю, что то, что вы хотите здесь, невозможно таким образом.

Я бы использовал что-то вроде singletable-наследования для объявлений и их подтипов.

3
ответ дан 7 December 2019 в 05:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: