На прошлой неделе я познакомил вас с одной из функций, которая была добавлена в последней версии платформы Ruby on Rails: менеджером гемов Bundler. На этой неделе я хочу углубиться немного глубже и показать вам еще кое-что интересное.
Однако прежде чем сделать это, я должен отметить, что после написания первой части была выпущена вторая бета-версия Rails 3 . Это дает мне прекрасную возможность показать еще одно преимущество использования Bundler. Допустим, вы были взволнованы моим постом на прошлой неделе и решили взять бета-версию и начать создавать новое приложение. Теперь вы хотите обновить это приложение, чтобы использовать новую и улучшенную бета-версию 2. Простая. Вам просто нужно изменить строку:
gem "rails", "3.0.0.beta"
Вместо этого читать:
gem "rails", "3.0.0.beta2"
Запустите bundle install
После того, как это сделано, пришло время углубиться в еще одно важное изменение в Rails 3.
Маршрутизация
Маршруты всегда были одной из сильных сторон Rails. Для непосвященных маршруты (которые находятся в файле routes.rb
Итак, написав, например:
map.connect 'posts/:id', :controller => 'posts', :action => 'view'
Вы подключили URL-адрес, например posts/3
view
posts
id
Конечно, в приведенном выше коде используется старый и отключенный синтаксис Rails 2. В Rails 3 вы можете написать:
match 'posts/:id', :to => 'posts#view'
Новый синтаксис не только намного короче, я думаю, вы также найдете его более читабельным. Вы можете сказать это по-английски: «сопоставить этот URL с этим действием». Как видите, вам больше не нужно указывать имя контроллера и имя действия в качестве отдельных параметров; Вы можете просто написать "controller#action"
Очень круто.
Каждый аспект маршрутизации Rails был пересмотрен в Rails 3: маршрутизация корня вашего приложения, обработка перенаправлений, наложение ограничений на параметры, создание именованных маршрутов — вы называете это. Изменения не просто косметические: есть много функций, которые были просто невозможны со старым модулем маршрутизации. Для полного ознакомления со всем, что нового, вы должны проверить обширную запись в блоге Ризвана Резы на эту тему в блоге Engine Yard.
На следующей неделе я возьму новый API-интерфейс запросов ActiveRecord. А пока возьмите с собой копию бета-версии и поиграйте. Вы будете быстро подключены к Rails.