2016-08-24 58 views
1

問題是我無法調用過濾器中使用的方法。如何在過濾器數據網格中調用方法

在sameple_grid.rb

我有查詢的所有記錄的樣品的方法加入

def method_sameple(field, operation, value) 
    ids = Model2.joins(:model2_model3s).where("score#{operation} ? AND model3_id= ?", value, field).ids 
    Model1.joins(:model2s).where(model2: { id: ids}) 
end 

那麼我調用method_sample

filter(:name, :dynamic, select: [[name, id]], header: -> { 'Name' }) do |(field, operation, value), scope| 
    #mehtod need to call in here! 
end 
+0

我已經使用datagrid gem進行過濾,我有一個在其他過濾器中使用的方法。我不想在其他過濾器中編寫相同的查詢 – pitou

回答

0
filter(:name, :dynamic, select: [[name, id]], header: -> { 'Name' }) do |(field, operation, value), scope| 
    #mehtod need to call in here! 
    method_return = self.method_sameple(your, params, of_method) 
end 

這是一個過濾器後,一種調用模型實例的方法的標準方法(另一種方法中的方法調用工作)。

但是沒有足夠的信息來了解您使用過濾器的方式。需要更多的上下文來了解你的問題。

+1

儘管此代碼可能有助於解決問題,但它並未解釋_why_和/或_how_它是如何回答問題的。提供這種附加背景將顯着提高其長期教育價值。請[編輯]您的答案以添加解釋,包括適用的限制和假設。 –