Чёрная магия ActiveResource

30 октября 2008 13:19 | Ссылка | Комментарии (0)
Чёрная магия ActiveRecord

Натолкнулся только что на одну неприятную особенность ActiveResource. Как известно ActiveResource позволяет прозрачно подменять ActiveRecord на клиенте и транслировать запросы отправленные ему на сервер при помощи REST где уже и происходит обращение к БД через ActiveRecord. Такое поведение накладывает ряд ограничений на ActiveResource и заставляет его, в некоторых случаях, вести себя иначе чем ActiveRecord.

* * *

Методы update_attribute и update_attributes в ActiveResource

31 октября 2008 10:56 | Ссылка | Комментарии (0)

Пока разработчики ActiveResource который месяц пытаются совладать с diff-файлами здесь и здесь и наложить патч который позволит использовать методы ActiveResource#update_attribute и ActiveResource#update_attributes можно воспользоваться немного переработанным мной патчем:

module ActiveResource
  class Base

    def update_attribute(name, value) 
      update_attributes(name => value)
    end

    def update_attributes(attributes)
      load(attributes) && save
    end

  end
end

который нужно положить в каталог <app-root>/config/initializers.

* * *

Время не властно над ActiveResource

31 октября 2008 12:18 | Ссылка | Комментарии (0)
НЕ-время ActiveRecord

С ещё одной проблемы связанной с ActiveResource начался сегодня день. Оказывается ActiveResource не поддерживает работу с часовыми поясами (временными зонами) т.е. значение которое находиться в config.time_zone не влияет на формат времени в полях класса ActiveResource. При этом REST-запросы возвращают дату с учётом часового пояса установленного на сервере, но судя по всему, при десериализации значение часового пояса теряется и возвращается дата в формате UTC.

* * *