2014-04-09 16 views
17

w Rails 4.0.4 tego dzieła kod:Rails 4.1 ActiveRecord :: relacja nie jest bardziej jak Array

mailboxes = Mailbox.order(:mailbox) 
mailboxes.keep_if do |mailbox| 
    # test 
end 

w Rails 4.1.0 to zerwać z NoMethodError (undefined method keep_if for <Mailbox::ActiveRecord_Relation:0x5494f80>)

i musi być zmieniony na

mailboxes = Mailbox.order(:mailbox).to_a 
mailboxes.keep_if do |mailbox| 
    # test 
end 

nie znaleźć żadnych informacji o tym

jakiś pomysł?

Odpowiedz

34

ITS w release notes do szyn 4.1

Relacja nie ma już metody mutator jak #map! i #delete_if. Konwertuj na tablicę, wywołująC#to_a przed użyciem tych metod. (Pull żądanie)

Od keep_if to metoda mutator, jego usunięty z Relation

+0

To wyjaśnia, dlaczego nie mogę dostać właściwą odpowiedź JSON na moim 'respond_with User.all'. Ale wykonanie respons_with User.all.to_a poprawnie wywołało moją metodę to_json i dało mi pożądany rezultat. Dzięki! – empee

+0

rozwiązał mój błąd po wywołaniu 'Modal.order':' NoMethodError (niezdefiniowana metoda 'sort_by!' Dla # ' – Cbas

Powiązane problemy