Muflix
Muflix

Reputation: 6798

rails path helper doesnt work

Hello im learning Rails on my testing app and i have this code

<% @categories.each do |category| %>
  <tr>
    <td><%= category.name %></td>
    <td><%= link_to 'Show', backend_category %></td>
    <td><%= link_to 'Edit', edit_backend_categories(category) %></td>
    <td><%= link_to 'Destroy', backend_category, method: :delete, data: { confirm: 'Are you sure?' } %></td>
 </tr>
<% end %>

and Rake routes shows me this

           home_index GET    /home/index(.:format)                  home#index
                 root        /                                      home#index
              contact        /contact(.:format)                     home#contact
         backend_root        /backend(.:format)                     backend/admin#index
   backend_categories GET    /backend/categories(.:format)          backend/categories#index
                      POST   /backend/categories(.:format)          backend/categories#create
 new_backend_category GET    /backend/categories/new(.:format)      backend/categories#new
edit_backend_category GET    /backend/categories/:id/edit(.:format) backend/categories#edit
     backend_category GET    /backend/categories/:id(.:format)      backend/categories#show
                      PUT    /backend/categories/:id(.:format)      backend/categories#update
                      DELETE /backend/categories/:id(.:format)      backend/categories#destroy

but im getting error that backend_category doesnt exist

here is image http://www.nahraj-obrazek.cz/?di=213711395092

whats wrong ? Thank you

Upvotes: 0

Views: 120

Answers (2)

Lu&#237;s Ramalho
Lu&#237;s Ramalho

Reputation: 10218

You must add _path to your link_to helper url, like so

<% @categories.each do |category| %>
  <tr>
    <td><%= category.name %></td>
    <td><%= link_to 'Show', backend_category_path(category) %></td>
    <td><%= link_to 'Edit', edit_backend_category_path(category) %></td>
    <td><%= link_to 'Destroy', backend_category_path(category), method: :delete, data: { confirm: 'Are you sure?' } %></td>
 </tr>
<% end %>

Upvotes: 1

PericlesTheo
PericlesTheo

Reputation: 2469

Following Luis answer, any show path needs a reference to an object. So I believe it should be

<td><%= link_to 'Show', backend_category_path category %></td>

Which can also be written as:

<td><%= link_to 'Show', category %></td>

Upvotes: 1

Related Questions