2012-02-16 77 views
0

在我的rails3.1應用程序中,我試圖在我的一個訂單模型中應用以下邏輯。Rail3'返回False,除非XYZ'查詢不起作用

def digital? 
    line_items.map { |line_item| return false unless line_item.variant_id = '102586070' } 
end 

我已經創建了一個獨立的變種,叫prepaid_voucher具有ID = 102586070.儘管這樣,結果是假的......

訂單有許多line_items

的LineItem屬於訂單和變異

變異有許多line_items

這是執行此類任務的最佳方式,我該如何解決?所有的

回答

1

首先,我想你想的雙重==這裏line_item.variant_id = '102586070',那我寧願去類似的東西(如果我理解你想要的)

def digital? 
    line_items.select{|line_item| line_item.variant_id == '102586070'}.any? 
end 

但很難理解你真正想要的,如果找不到id,預期的行爲是什麼?

+0

正試圖避免一個過於複雜的問題。我正在使用狂歡,並試圖改變購物車流程的狀態。即如果數字產品轉到x,否則轉到y。上述仍然不工作,雖然:( – simonmorley 2012-02-16 12:34:04

+0

是的,我修改了幾次,但這應該響應真或假取決於id的存在(這btw應該去在一個常數或更多的描述性變量)。根據您的代碼'返回false除非'這是'返回true如果'=>'.any?'應該這樣做,但是也許你想'.empty?'或'.blank?' – ecoologic 2012-02-16 12:38:23

+0

也確保你沒有保存任何對象之後函數或其中的一些可能包含您在開始時分配的變體id,'=' – ecoologic 2012-02-16 12:42:12