关联条件不变

时间:2014-10-29 08:53:46

标签: ruby-on-rails ruby-on-rails-4

元素可以通过多态关联 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')可识别?

1 个答案:

答案 0 :(得分:0)

我在撰写问题时找到了解决方案:

belongs_to :element_recommendation, ->(element) { 
  if element.elementable_type == 'ElementRecommendation' 
    self
  else 
    none
  end }, :class_name => "ElementRecommendation", :foreign_key => "elementable_id"