Mam proces, który iteruje przez kilka modeli ActiveRecord, wykonuje niektóre przetwarzanie i zapisuje modele ponownie. Często jednak przetwarzanie nie powoduje zmiany atrybutów, więc kolumna updated_at
nigdy się nie zmienia (nawet jeśli wywoływany jest zapis)."Dotknij" updated_at kolumna w Rails 2.3.2
Wolałbym nie wyłączać częściowych aktualizacji (generalnie są one przydatne). Zgaduję, że moje dwie opcje to:
- Dodaj oddzielną kolumnę timestamp do modelu (tj „
processed_at
”) i zarządzać ten sam, choć wydaje się nieco marnotrawienia/nadmiarowe. - Czy w jakiś sposób nadpisujesz zarządzanie atrybutem
updated_at
?
Słyszałem, że Rails 3 będzie miał metodę "dotykową", która byłaby dokładnie tym, czego szukam.
Wszelkie pomysły/opcje/opinie?
Wow! Masz rację. Lekcja, której się nauczyłeś, nie wierz we wszystko, co czytasz na blogu (http://ryandaigle.com/articles/2009/4/20/what-s-new-in-edge-rails-touching), przejdź bezpośrednio do źródło (http://github.com/rails/rails/blob/0d3c5f0a822cd1b6029b5f619774b7794a94f370/activerecord/lib/active_record/timestamp.rb#L27) – ideasasylum
Myślę, że DHH wspomniał o tym na Twitterze - tak o tym wiedziałem. –
Grrr ... wygląda na to, że obsługa dotykowa właśnie przegapiła wydanie 2.3.2 i jest tylko w gałęzi 2.3-STABLE. Nie ma etapu 2.3.3, ale 2.3.4 jest wymieniony jako 18 lipca. Chyba będę musiał tylko poczekać :-( – ideasasylum