在HAS中思考狮身人面像的情况

时间:2013-11-08 07:10:44

标签: sql ruby-on-rails thinking-sphinx

我有一个索引,我希望根据某些条件过滤某些属性。

以下结构工作正常

Class A
attr_accessible :vaild_date
belongs_to: B
define_index 'index_for_a' do
  indexes ...
  ...
  has B.C.plant_id, :as => :plant_id
end
end

class B
  has_many: C
end

class C
  attr_accessible :plant_id,:month_timestamps
end

现在我的C类有很多行。我想只为

的行设置plant_id
C.month_timestamps = A.valid_date

请提出一些方法来实现这一目标。作为thinking_sphinx的新手,我无法正确使用条件和条款。

1 个答案:

答案 0 :(得分:1)

添加

  #Assuming Class C is stored in db as Cs
  where "Cs.month_timestamps = valid_date"

到这样的define_index区块

define_index 'index_for_a' do
  indexes ...
  ...
  has B.C.plant_id, :as => :plant_id

  join B.C
  #Assuming Class C is stored in db as Cs
  where "Cs.month_timestamps = valid_date"
end

<强>更新

使用CrazyDiv

建议的修改更新了答案

<强>更新

尝试这样的事情

  has  "IFNULL(Cs.plant_id,0)", :as => :plant_id