Конвертация маршрутов для рельсов 3 - PullRequest
0 голосов
/ 10 декабря 2010

Это довольно глупый вопрос, но у меня возникли реальные проблемы с выяснением.Я хочу преобразовать следующие маршруты, чтобы сделать его совместимым с Rails 3 (из 2.8.x):

map.with_options :controller => 'static_pages', :action => 'show' do |static_page|
      static_page.faq 'faq', :id => 'faq'
      static_page.about 'about', :id => 'about'
      static_page.blog 'blog', :id => 'blog'
      static_page.support 'support', :id => 'support'
      static_page.privacy 'privacy', :id => 'privacy'
      static_page.howitworks 'howitworks', :id => 'howitworks'
      static_page.contact 'contact', :id => 'contact'
      static_page.terms_and_conditions 'terms_and_conditions', :id => 'terms_and_conditions'
  end

Любая помощь будет высоко ценится!

Ответы [ 2 ]

1 голос
/ 10 декабря 2010

Думаю, я бы сделал это так:

  scope '/static_pages', :name_prefix => 'static_page', :to => 'static_pages#show' do
    for page in %w{ faq about blog support privacy howitworks contact terms_and_conditions }
      match page, :id => page
    end
  end
1 голос
/ 10 декабря 2010

Это круто, я только что написал статью об этом пару недель назад:

Маршрутизация в Ruby on Rails 3

Это касается большинства аспектовпреобразование, с загружаемым примером приложения.Хотя я специально не описывал конверсию with_options, здесь я могу кое-что сделать.Вот краткий путь:

scope :static_pages, :name_prefix => "static_page" do
  match "/:action", :as => "action"
end

Это соответствует всем маршрутам, указанным выше, и ваши именованные маршруты будут выглядеть так:

static_page_path(:faq)
static_page_path(:about)

... и так далее.Если вы хотите, чтобы ваши именованные маршруты по-прежнему выглядели как static_page_faq_path, вы можете указать их по одному, например:

scope '/static_pages', :name_prefix => 'static_page' do
  match '/faq', :to => 'static_pages#faq'
  match '/about', :to => 'static_pages#about'
  # fill in all the rest here
end

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...