Вышел Ruby on Rails 3!
Разработка Rails 3,0 продолжалась уже два года и наконец-то она завершена.
Основные изменения для Rails 3:
Новый Active Record:
Active Record теперь на движке Arel. Теперь гораздо легче создавать сложные запросы по нескольким итерациям. Реализована "ленивая загрузка". Вот простой пример:
users = User.where(:name => "david").limit(20)
users = users.where("age > 29")
# SELECT * FROM users
# WHERE name = "david" AND age > 29
# ORDER BY name
# LIMIT 20
users.order(:name).each { |user| puts user.name }
Новый маршрутизатор для контроллера действий
Новый синтаксис полностью в REST-стиле для большей гибкости:
resources :people do
resource :avatar
collection do
get :winners, :losers
end
end
# /sd34fgh/rooms
scope ':token', :token => /\w{5,5}/ do
resources :rooms
end
# /descriptions
# /pl/descriptions
# /en/descriptions
scope '(:locale)', :locale => /en|pl/ do
resources :descriptions
root :to => 'projects#index'
end
XSS защиты по умолчанию.
Была добавлена CRSF-защита для форм и защита от SQL-инъекций.
Rails 3.0 была разработана для работы с Ruby 1.8.7, Ruby 1.9.2, и JRuby 1.5.2.