0

Railsアプリケーションに問題があります。存在すべきルートを認識していません。私のWebサイトのユーザーフィードバックをカタログ化することを目的とした、照会モデルでの基本的なCRUD操作があることを確認するために、 routes.rbresources :inquiriesファイルの先頭に含めました。照会インデックスのビューをレンダリングしようとすると、ブラウザーで次のエラーが発生します。

`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>`

アプリケーションがルートを見つけられない理由について何かアイデアはありますか?よろしくお願いします。

4

1 に答える 1

3

問題はラインによって引き起こされていると思います<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>
于 2011-03-07T03:18:54.380 に答える