Holzfaller
@Holzfaller
Ruby / Ruby on Rails developer (full-stack)

Как настроить роутинг в Ruby on Rails?

routing.rb:
get 'brand'  => 'index#brand',   as: :brand
  get 'client' => 'index#client',  as: :client
  get 'info'   => 'index#info',    as: :information
  get 'help'   => 'index#help',    as: :help


views/header.html.haml:
%nav#main_menu
    %ul.nav
      %li.home
        %a{href: root_url}
      %li
        %a{href: brand_path(page: 'brand')}
          %span
            о бренде
      %li
        %a{href: client_path(page: 'client')}
          %span
            клиентам
        %ul
          %li
            = link_to 'Наши партнёры и точки продаж', '#'
          %li
            = link_to 'Почему мы лучшие', '#'
          %li
            = link_to 'Готовое бизнес-решение', '#'
      %li
        %a{href: information_path(page: 'info')}
          %span
            полезная информация
      %li
        %a{href: help_path(page: 'contacts')}
          %span
            контакты


На данный момент адрес получается такой: localhost:3000/brand?page=brand. Как сделать, чтобы было примерно так: /pages?page=brand, /pages?page=client, /pages?page=info и /pages?page=contacts?
  • Вопрос задан
  • 2535 просмотров
Решения вопроса 1
@rubyruby
Не очень правильное желание с точки зрения соглашательств принятых в Rails, но все же можно, для этого потребуется:
match '/pages/:kind_of_page' => 'index#show', as: :page
в роутах
а
в экшне show можно разрулить поведение c помощью redirect_to action_name_path
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы