Rails 2.3.3 представляет новые возможности
22.07.2009
Опубликован Ruby on Rails версии 2.3.3. Релиз включает исправления ошибок и дополнительные возможности. Изменения затронули Active Record (метод touch), библиотеку JSON.
В Active Record переработаны
touch- удобный метод для обновления timestamp'а записей, вот собственно и всё. Это позаимствовано из приложений, чьи модели “touch (трогают)” другие, когда те изменяются, такие как обновление timestamp комментария parent.replies_changed_at после сохранения и разрушения. Отслеживание timestam внутри ассоциации упрощает построение ключа для фрагментного кеширования, которое охватывает изменения в родительском объекте и всех его потомках. Этот паттерн обёрнут какbelongs_to :parent, :touch => :replies_changed_at. Когда изменяется потомок,parent.replies_changed_at"затрагивает" изменения.:touch => trueпо умолчанию:touch => :updated_at.- опция
:primary_keyдляbelongs_to- для расширенной поддержки схем наследования и тех, которые используют отдельный UUID первичного ключа:belongs_to :employee, :primary_key => 'SSN', :foreign_key => 'EMPID'changeset
JSON также не остался без изменений:
- переработан бакэнд для библиотек json и yajl. Обе стали значительно быстрее, чем использующийся по умолчанию бакэнд YAML. Чтобы начать работу, необходимо установить гем json и установить:
ActiveSupport::JSON.backend = 'JSONGem'. - сокращена API пользовательской разработки. С того момента, как в библиотеке JSON реализован
to_jsonс различной степенью совместимости, безопасное переназначение его затруднено. Большинство пользовательскихto_jsonвыглядят так:
теперь использование API стало более натуральным:def to_json(*encoder_specific_args) { :some => "json representation" }./ to_json(*encoder_specific_args) end
без жесткого переопределенияdef as_json(options = {}) { :some => "json representation" } endto_jsonкак в пользовательском, так и во внутреннем API. Rails 3 разделяет API, так что приготовьтесь к переключению отto_jsonкas_json.
Другие возможности в Rails:
- добавлена опция :concat;
- восстановлена обратная совместимость AR::Base#to_xml;
- переход от BlueCloth к Markdown для markdown helper. Пользователи, использующие BlueCloth для получения функциональности markdown, должны обновить версию 1.0.1 или 2.0.5 для восстановления совместимости.
В Rails 2.3.3 исправлено множество ошибок:
- Исправлена ошибка, вызываемая перезагрузкой класса с потоковыми ответами в режиме разработки.
- Некоторые исправления в обработке гемов.
- text_area_tag прерывает контент по умолчанию.
- filter_parameters правильно работает с параметрами-массивами.
- Внесены потоково-безопасные исправления в обработку строк (добавление кавычек) для postgresql.
- Улучшена эффективность для ответов с большими объёмами
сообщает weblog.rubyonrails.org.

вопрос
специалисту