元素可以通过多态关联 elementable 与不同的模型相关联。因为我想使用嵌套表单,所以我必须为不同的模型显式建立关联(association element_recommendation )。
以下代码按预期工作:
class Element < ActiveRecord::Base
belongs_to :elementable, :polymorphic => true, :dependent => :destroy
belongs_to :element_recommendation, ->(element) {
if element.elementable_type == 'ElementRecommendation'
where('true = true')
else
none
end }, :class_name => "ElementRecommendation", :foreign_key => "elementable_id"
[..]
但我对 element_recommendation 关联中的lambda不满意。这是一个全有或全无的联想。 none -part是可识别的,但将其视为 -part并不明显。如何使 where('true = true')可识别?
答案 0 :(得分:0)
我在撰写问题时找到了解决方案:
belongs_to :element_recommendation, ->(element) {
if element.elementable_type == 'ElementRecommendation'
self
else
none
end }, :class_name => "ElementRecommendation", :foreign_key => "elementable_id"