我該怎麼做?從ActiveRecord-Hash中刪除元素而不刪除數據庫
all_tickets = Ticket.find(:all)
all_tickets.each do |at|
if at "a condition"
all_tickets.delete(at)
end
end
有了這個代碼,我刪除數據庫中的元素,但我只希望從all_tickets刪除在元ActiveRecord的散列當「條件」爲真。
感謝您的幫助
我該怎麼做?從ActiveRecord-Hash中刪除元素而不刪除數據庫
all_tickets = Ticket.find(:all)
all_tickets.each do |at|
if at "a condition"
all_tickets.delete(at)
end
end
有了這個代碼,我刪除數據庫中的元素,但我只希望從all_tickets刪除在元ActiveRecord的散列當「條件」爲真。
感謝您的幫助
該解決方案已被轉換爲不使用你的每一絲SQL。總之,抓住票據,循環它們,如果條件成立,從屬性中刪除特定的鍵。最後,用這些屬性生成一個新的票據實例(不記錄)。
我知道條件是一個外部的事情,但我會建議或者添加一個attr_accessor到該條件的對象上。我會在視圖中利用這一點,以便不依賴於某個特定領域的存在或缺失來決定如何交付。我在這裏做了一些假設,但解決方案讓我對需要這種類型的操作的功能感到好奇。祝你好運。
all_tickets = Ticket.find(:all)
processed_tickets = []
all_tickets.each do |ticket|
attributes = ticket.attributes
attributes.delete(:some_key) if some_condition?
processed_tickets << Ticket.new(attributes)
end
請閱讀我的提示,無法通過sql詢問條件;-( all_tickets的計數是每次<10,所以迭代不應該是一個問題,謝謝! – Alex 2013-03-08 11:03:15
提示:「條件」不能通過sql發送/詢問,這是一種外部條件。所以all_tickets.find(:all,:conditions =>「條件」)將不起作用。謝謝。 – Alex 2013-03-07 21:21:21