0

1 つまたは複数のコメントを含む投稿を含む単純な Rails アプリを作成しました。

投稿と関連するコメントを表示できる単純な投稿ビューを作成したいと考えています。各コメントに、表示、編集、削除へのリンクが必要です。

ただし、以下のコードを修正しようとすると、ルーティング エラーが発生します。ヘルプ?

ルート.rb

resources :posts do
   resources :comments
end

レーキルート

 post_comments GET    /posts/:post_id/comments(.:format)          comments#index
                   POST   /posts/:post_id/comments(.:format)          comments#create
  new_post_comment GET    /posts/:post_id/comments/new(.:format)      comments#new
 edit_post_comment GET    /posts/:post_id/comments/:id/edit(.:format) comments#edit
 post_comment GET    /posts/:post_id/comments/:id(.:format)      comments#show
              PUT    /posts/:post_id/comments/:id(.:format)      comments#update
              DELETE /posts/:post_id/comments/:id(.:format)      comments#destroy

コメント_コントローラー.rb

def show
  @comment = Comment.find(params[:id])

 respond_to do |format|
  format.html
  format.json { render :json => @post }
 end
end

def edit
 @comment = Comment.find(params[:id])
end

コメント\show.html.erb

 <p>
   <b>Commenter:</b>
   <%= @comment.user_id %>
 </p>

 <p>
   <b>Comment:</b>
   <%= @comment.text %>
 </p>

 <%= link_to 'View Comment', comment_path(?) %> |
 <%= link_to 'Edit Comment', edit_comment_path(?) %> |
 <%= link_to 'Delete Comment', [@post, comment],
        :confirm => 'Are you sure?',
        :method => :delete %></p>
4

1 に答える 1

0

あなたは見ていますか:

ルーティング エラー 一致するルートがありません {:action=>"show", :controller="comments"} 使用可能なルートの詳細については、rake ルートを実行してみてください。

提供されたコードでプロジェクトを複製しましたが、ルート ヘルパー メソッドに ID が渡されていなかったため、そのルーティング エラーのみを受け取りました。これらは安静なルートであるため、View Comment の形式は /comments/:id(.:format) にする必要があります。

次のようにidまたはコメントオブジェクトをcomment_pathおよびedit_comment_pathヘルパーメソッドに渡すことで、このエラーを解決できました。

<%= link_to 'View Comment', comment_path(2) %> |
<%= link_to 'Edit Comment', edit_comment_path(3) %> |
<%= link_to 'Delete Comment', [@post, comment],
    :confirm => 'Are you sure?',
    :method => :delete %></p>

明らかに、ランダムな ID ではなく、正しい ID またはコメント オブジェクトを入力する必要があります。

お役に立てれば。

乾杯!

于 2012-09-17T22:09:17.253 に答える