我正在尝试与动态class_name属性
建立has_many关系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
个广告作为嵌套广告。我想说明哪种类型的广告属于Category
对象。
感谢您的帮助!
答案 0 :(得分:5)
你可以尝试
def items
item_type.constantize.where(category_id: id)
end
答案 1 :(得分:3)
can't convert Proc into String
表示rails期待String
undefined method `item_type' for #<Class:0xb62c6c88>
表示您没有为item_type
- 对象
Class
我相信你想要的东西是不可能的。
我会为广告及其子类型使用单一表继承。