Ошибка маршрутизации Rails при использовании RESTful Paths - PullRequest
0 голосов
/ 06 марта 2011

У меня проблема с моим Rails-приложением; это не распознавание маршрута, который должен существовать. Я включил resources :inquiries в верхней части файла rout.rb , чтобы обеспечить выполнение основных операций CRUD с моей моделью запросов , предназначенной для каталогизации обратная связь для моего сайта. Когда я пытаюсь отобразить представление для индекса запроса, в браузере появляется следующая ошибка:

`No route matches {:action=>"show", :controller=>"inquiries"}`

Простой $ rake routes из консоли показывает, что это не так: `

       users GET    /users(.:format)              {:action=>"index", :controller=>"users"}
             POST   /users(.:format)              {:action=>"create", :controller=>"users"}
    new_user GET    /users/new(.:format)          {:action=>"new", :controller=>"users"}
   edit_user GET    /users/:id/edit(.:format)     {:action=>"edit", :controller=>"users"}
        user GET    /users/:id(.:format)          {:action=>"show", :controller=>"users"}
             PUT    /users/:id(.:format)          {:action=>"update", :controller=>"users"}
             DELETE /users/:id(.:format)          {:action=>"destroy", :controller=>"users"}
    sessions POST   /sessions(.:format)           {:action=>"create", :controller=>"sessions"}
 new_session GET    /sessions/new(.:format)       {:action=>"new", :controller=>"sessions"}
     session DELETE /sessions/:id(.:format)       {:action=>"destroy", :controller=>"sessions"}
   inquiries GET    /inquiries(.:format)          {:action=>"index", :controller=>"inquiries"}
             POST   /inquiries(.:format)          {:action=>"create", :controller=>"inquiries"}
 new_inquiry GET    /inquiries/new(.:format)      {:action=>"new", :controller=>"inquiries"}
edit_inquiry GET    /inquiries/:id/edit(.:format) {:action=>"edit", :controller=>"inquiries"}
     inquiry GET    /inquiries/:id(.:format)      {:action=>"show", :controller=>"inquiries"}
             PUT    /inquiries/:id(.:format)      {:action=>"update", :controller=>"inquiries"}
             DELETE /inquiries/:id(.:format)      {:action=>"destroy", :controller=>"inquiries"}
     about        /about(.:format)              {:action=>"about", :controller=>"pages"}
      blog        /blog(.:format)               {:action=>"blog", :controller=>"pages"}
techniques        /techniques(.:format)         {:action=>"techniques", :controller=>"pages"}
   contact        /contact(.:format)            {:action=>"new", :controller=>"inquiries"}
   reviews        /reviews(.:format)            {:action=>"reviews", :controller=>"pages"}
    signup        /signup(.:format)             {:action=>"new", :controller=>"users"}
    signin        /signin(.:format)             {:action=>"new", :controller=>"sessions"}
   signout        /signout(.:format)            {:action=>"destroy", :controller=>"sessions"}
      root        /(.:format)                   {:action=>"home", :controller=>"pages"}`

Следует отметить, что мой маршрут / inquiries / не загружается, а не отдельная страница показа. Файл index.html.erb выглядит следующим образом:

'<h1>All Inquiries</h1>


<table>
  <tr>
    <th>Link</th>
    <th>Name</th>
    <th>Subject</th>
    <th>Body</th>
  </tr>
  <%= @inquiries.each do |inquiry| %>
    <tr>
       <td><%= link_to inquiry.id, inquiry_path %></td>
       <td><%= inquiry.name %></td>
       <td><%= inquiry.subject %></td>
       <td><%= inquiry.body[0..140] %>...</td>
    </tr>
  <% end %>
</table>`

Есть идеи, почему приложение не может найти маршрут? Спасибо заранее за ваше время.

1 Ответ

3 голосов
/ 07 марта 2011

Я думаю, что проблема создается строкой <td><%= link_to inquiry.id, inquiry_path %></td>

. Используя inquiry_path, вы должны назначить запрос, который будет показан.Таким образом, путь должен быть:

<td><%= link_to inquiry.id, inquiry_path(inquiry) %></td>

Если вы используете пути RESTful, вы можете упростить его до:

<td><%= link_to inquiry.id, inquiry %></td>
...