Ошибка маршрутизации, скринкасты Майкла Хартла из railstutorial.org

#ruby-on-rails-3 #routes #rails-routing #railstutorial.org

#ruby-on-rails-3 #маршруты #rails-маршрутизация #railstutorial.org

Вопрос:

Я слежу за скринкастами Майкла Хартла из railstutorial.org . Согласно главе 5, я изменил config/routes.rb на:

 SampleApp::Application.routes.draw do
  match '/contact', :to => 'pages#contact'
  match '/about',   :to => 'pages#about'
  match '/help',    :to => 'pages#help'
  root :to => 'pages#home'
end
  

и _footer.html.erb в:

  • <%= link_to «About», about_path %>
  • <%= link_to «Contact», contact_path %>

и _header.html.erb для:

  <% logo = image_tag("logo.png", :alt => "Sample App", :class => "round") %>
 <%= link_to logo, root_path %>
 <nav class="round">
    <ul>
      <li><%= link_to "Home", root_path %></li>
      <li><%= link_to "Help", help_path %></li>
  

Я новичок в Ruby on Rails. Я получаю ошибку маршрутизации в браузере

Маршрут не соответствует «/ страницам / контакту»

Я использую ruby 1.9.2p180 (редакция 30909 2011-02-18) [x86_64-linux], rails 3.0.7 и gem 1.6.2, пожалуйста, помогите.

Ответ №1:

Ваши маршруты настроены на определенный уровень. Для /pages /contact нет маршрута, правильный маршрут — «/contact», учитывая ваш файл routes.

Комментарии:

1. Большое спасибо.. но я не могу получить доступ к своей домашней странице

2. Вы удалили public/index.html ? Если нет, то это всегда будет обслуживаться, даже если root: to установлен в вашем файле routes.rb.

Ответ №2:

Для поздних посетителей, у меня только что была такая же проблема. В коде из руководства не должно быть end после этих match инструкций. Если вы посмотрите на последнюю строку config/routes.rb, вы увидите и end там. Это единственный конец, который вам нужен.

Вместо:

 SampleApp::Application.routes.draw do
  match '/contact', :to => 'pages#contact'
  match '/about',   :to => 'pages#about'
  match '/help',    :to => 'pages#help'
  root :to => 'pages#home'
end
  

Это должно быть:

 SampleApp::Application.routes.draw do
  match '/contact', :to => 'pages#contact'
  match '/about',   :to => 'pages#about'
  match '/help',    :to => 'pages#help'
  root :to => 'pages#home'

 # All those commented out rules
 # All those commented out rules
 # All those commented out rules
end