2012-05-17 4 views
0

Я работаю над небольшим заданием для создания сообщений и деления их по категориям. У меня все работает, но в моем index.html. Я получаю следующие ошибки маршрутизации, связанные с моими ссылками.Rails Вложенные атрибуты - ошибки URL

No route matches {:action=>"show", :controller=>"posts"} 
No route matches {:action=>"edit", :controller=>"posts"} 
undefined method `post_path' for #<#<Class:0x007fd3097f0ce0>:0x007fd3097c9370> 

В сообщениях/index.html.haml у меня есть:

- @category.posts.each do |post| 
     %tr 
      %td= post.title 
      %td= post.description 
      %td= post.user_id 
      %td= post.category_id 
      %td= link_to 'Show', category_post_path //gives first error 
      %td= link_to 'Edit', edit_category_post_path //gives second error 
      %td= link_to 'Destroy', post, 
      :confirm => 'Are you sure?', :method => :delete //gives third error 

В routes.rb у меня есть:

resources :categories do 
    resources :posts 
    end 

Когда я бег реки маршрутов я получаю:

categories_index GET /categories/index(.:format) categories#index     
category_posts GET /categories/:category_id/posts(.:format)  posts#index 
        POST /categories/:category_id/posts(.:format)   posts#create 
new_category_post GET /categories/:category_id/posts/new(.:format)  posts#new 
edit_category_postGET /categories/:category_id/posts/:id/edit(.:format) posts#edit 
category_post  GET /categories/:category_id/posts/:id(.:format)  posts#show 
        PUT /categories/:category_id/posts/:id(.:format)  posts#update 
        DELETE /categories/:category_id/posts/:id(.:format)  posts#destroy 

В моем индексе что-то не так, что это маки что я могу получить доступ и увидеть их без проблем:

/categories/:category_id/posts/:id (equivalent to show) 
/categories/:category_id/posts/:id/edit (equivalent to edit) 

Может кто-нибудь, пожалуйста, помогите мне? Заранее спасибо.

ответ

1

URL-адреса помощников должны знать, какую категорию и должность вас интересует, поэтому вам необходимо передать конкретную категорию и отправить объекты в качестве параметров помощникам. Я думаю, что они должны работать:

 %td= link_to 'Show', category_post_path(@category,post) //gives first error 
     %td= link_to 'Edit', edit_category_post_path(@category,post) //gives second error 
+0

Большое вам спасибо, я ценю вашу помощь! Те работали отлично .. –

Смежные вопросы