比方說,我有像記錄的列表:如何在Ruby中使用多個#select塊?
transactions = Transaction.all
而且我有以下的實例方法@currency, @geo, @industry
。我想選擇記錄它具有以下標準:
選擇具有場
currency
相等於@currency
除非@currency
是零,在這種情況下,我們會忽略條件的所有交易(貨幣將意味着,當所有貨幣它爲零)選擇所有具有字段
geo
的交易,其等於@geo
,除非@geo
爲零。選擇所有具有字段
industry
的交易,其等於@industry
除非@industry
爲零。
我試過多次#select
但沒有運氣是這樣的:
transactions.select{ |i| (i.currency == @currency) unless @currency.nil? }.
.select{ |i| (i.geo == @geo) unless @geo.nil? }.
.select{ |i| (i.industry == @industry) unless @industry.nil? }
不會像'Transaction.where(貨幣:@currency,geo:@geo,industry:@industry)''也許'除非[@currency,@geo,@industry] .compact.empty?'足夠嗎? – wpp
@wpp我將如何使用它與數組而不是SQL。如果存在,我將如何應用每個查詢,而不是全部存在。在情況'除非[@currency,@geo,@industry] .compact.empty?'這意味着它會運行,除非所有的值都是空的,但在我的情況下,我想檢查每個如果空或不 –