1

我使用下面的輸出的JSON記錄的列表:的Rails 3 to_json包括與條件/ where子句

@team.people.to_json(
     :include => [:user, :statistics => {:include => :attribute}]).html_safe 

不過,我想只包括具有一定TYPE_ID他們一組統計數據。基本上是與用戶和統計信息的左外連接,其中統計信息上的type_id等於某個數字。

回答

0

我能想到的至少幾個選項:

  1. Person模型,覆蓋to_json(或者,也許更好,serializable_hash),做你的條件存在。
  2. 而不是{:include => :attribute}{:methods => :foo}並在foo做你的條件。

這裏就是我推翻serializable_hash,如果有幫助的例子:

def serializable_hash(options={}) 
    options = { 
     :methods => [ 
     'client', 
     'services', 
     'products', 
     'has_payments', 
     ]}.update(options) 
    super(options) 
    end 

我能想象到的東西上面options =,你的方法陣列設置成一兩件事,如果type_id就是你要找的數量爲了或者別的什麼別的東西。

+0

不幸的是,這對我不起作用,type_id需要是動態的,這是在返回活動記錄結果集的函數的上下文中。基本上我需要能夠在包含的左外部聯接上添加'和'條件。但是,在Rails中這似乎不可能。 –

+0

你可以在你的問題中發佈你的查詢嗎? –

+0

我已澄清此問題並在此處重新提問:http://stackoverflow.com/questions/12502184/rails-include-records-with-a-condition-on-the-include感謝您的幫助。 –