2012-02-06 6 views
0

나는이 특정 중첩 경로가 작동하는 데 악마가있다. 이상하게도, 여러 경로를 새로운 Rails 3 구문으로 마이그레이션했기 때문에 특히이 경로는 작동하지 않는 것 같습니다. 여기에 간다.Nested Routes Broken : Rails 3

"piece_comment"라는 중첩 된 객체가있는 "piece"라는 객체가 있습니다./show.html.erb이 조각 주석 제출하는 양식으로, 모양을 조각 여기

resources :piece do 
    resources :piece_rating, :as => :rating 
    resources :piece_comments, :as => :comments 
end 

: 그리고 여기처럼 routes.rb 보이는 무엇 이제

<% @piece_comment = PieceComment.new(:piece_id => @piece.id, :user_id => current_user.id) %> 

<%= form_for [@piece, @piece_comment] do |f| %> 
    <%= f.hidden_field 'piece_comment', 'user_id' %> 
    <%= f.hidden_field 'piece_comment', 'piece_id' %> 
    <%= f.text_area 'piece_comment', 'comment' %> 
    <%= f.submit_tag 'Post' %> 
<% end %> 

을 무슨 일이 이상해

undefined method `piece_piece_comments_path' for #<#<Class:0x007f80ec732a48>:0x007f80ec737ae8> 

내 루트 파일에 :as 그것이 piece_comments_path에 전송되지 않을 경우,하지 piece_piece_comments_path : 나는 다음은 "form_for"라인에 의해 트리거 오류가 얻을 것이 무엇입니까? 내가 :as => :foobar 또는 뭔가를 변경하면 같은 오류가 발생합니다. 경로 파일이 올바르게 작동하지 않는 것 같습니다. (이상하게도 등급 경로의 동작은 문제가없는 것 같습니다.)

라우팅에있어 잘못된 점에 대한 아이디어가 있으십니까?

답변

1

어쨌든 난 문제가 될지 모르지만 리소스는 routes.rb에 복수 여야합니다. 로 시도 :

resources :pieces do 
    resources :piece_ratings, :as => :ratings 
    resources :piece_comments, :as => :comments 
end 

사용 rake routesroutes.rb에 의해 생성 된 경로의 이름을 볼 수 있습니다.