voo*_*ooD 7 ruby orm activerecord ruby-on-rails
我正在尝试与动态class_name属性建立has_many关系
class Category < ActiveRecord::Base
has_many :ads, :class_name => ( lambda { return self.item_type } )
end
Run Code Online (Sandbox Code Playgroud)
要么
class Category < ActiveRecord::Base
has_many :ads, :class_name => self.item_type
end
Run Code Online (Sandbox Code Playgroud)
但是我得到了错误:
can't convert Proc into String
Run Code Online (Sandbox Code Playgroud)
要么
undefined method `item_type' for #<Class:0xb62c6c88>
Run Code Online (Sandbox Code Playgroud)
编辑 我有两种不同类型的广告
LeaseAd,RentAd他们使用单表继承实现
然后我有Category广告作为嵌套集.我想指定哪种类型的广告属于Category对象.
感谢您的任何帮助!
小智 5
你可以试试
def items
item_type.constantize.where(category_id: id)
end
Run Code Online (Sandbox Code Playgroud)
can't convert Proc into String
Run Code Online (Sandbox Code Playgroud)
意味着 Rails 需要一个字符串
undefined method `item_type' for #<Class:0xb62c6c88>
Run Code Online (Sandbox Code Playgroud)
意味着您没有item_type为Class-object定义
我相信你在这里想要的东西是不可能的。
我会为广告及其子类型使用类似单表继承的东西。
| 归档时间: |
|
| 查看次数: |
2120 次 |
| 最近记录: |