Существует ряд других вопросов о маршрутизации Rails2 -> 3, но мой менее сложен и фактически не дает мне ошибки. Так почему вопрос? Ну, я хочу убедиться, что я не использую дополнительный ненужный код. Отказ от ответственности: я новичок в Ruby / Rails, изучающем Rails3 через книгу Simply Rails 2, пытаюсь адаптировать / выяснить все ошибки в надежде получить более глубокое понимание языка.
Итак, у меня есть мой первый просмотр index.html.erb (в приложении / views / Stories). Когда я впервые зашел посмотреть его на localhost: 3000 / историй, как в книге сказано, что я получил ошибку No route matches "/stories"
после изменения URL-адреса на localhost: 3000 / Stories / index, страница показалась отлично.
Посмотрите на route.rb:
Shovell::Application.routes.draw do
get "stories/index"
Я создал второе представление new.html.erb (в приложении / views / Stories):
<% form_for @story do |f| %>
<p>
name:<br />
<%= f.text_field :name %>
</p>
<p>
link:<br />
<%= f.text_field :link %>
</p>
<p>
<%= submit_tag %>
</p>
<% end %>
Это представление не будет отображаться ни на одном URL, который я пробовал. Глядя на журнал сервера, я решил, что это вещь с маршрутами. Я изменил route.rb на это:
Shovell::Application.routes.draw do
get "stories/index"
get "stories/new"
Теперь, когда я захожу на localhost: 3000 / story / new, страница работает нормально (хотя ошибка метода, которая является частью упражнения в книге).
Неправильно, что мне придется вручную вводить каждое представление в rout.rb, должен быть способ установить root и позволить ему распознавать все файлы там. Могу я это сделать?