2015-09-30 70 views
4

看來,阿雷爾的Between謂詞只能與範圍內使用,如阿雷爾`between`與其他的列範圍

between(1.day.ago.time..Time.current) 

有誰知道的方式與其他列使用它呢?像

between(table[:since]..table[:till]) 

(最後不會工作,但它顯示了一個想法)。 最後我想

column BETWEEN table.since AND table.till 
+0

你總是可以使用'find_by_sql' –

回答

2

要生成table.field BETWEEN another_table.from AND another_table.to使用該AREL代碼:

Arel::Nodes::Between.new(
    table[:field], 
    Arel::Nodes::And.new(
    [ 
     another_table[:from], 
     another_table[:to] 
    ] 
) 
) 

在我來說,我放在這個代碼爲.and() AREL方法。