私はRails3を初めて使用し、rubyサイトのガイドに従って最初のブログアプリケーションを作成します。
ただし、アプリでは、モデル「コメント」に編集/更新/削除操作はありません。
それから追加しようとしましたが失敗しました。
モデル「コメント」のモデルを生成する代わりに、次を使用してモデル「コメント」のスキャフォールドを作成します。
rails generate scaffold Comment commenter:string body:text post:references
そして、post.showページで、次のように変更します。
<% @post.comments.each do |comment| %>
<tr>
<td><%= comment.commenter %></td>
<td><%= comment.body %></td>
<td><%= link_to 'Edit', edit_comment_path(comment) %></td>
<td><%= link_to 'Destroy', comment, confirm: 'Are you sure?', method: :delete %></td>
</tr>
<% end %>
それらはリストされていますが、「編集」または「削除」リンクをクリックすると、次のリンクにジャンプしようとします。
http://localhost:3000/comments/1
そして、私はエラーを受け取ります:
No route matches [GET] "/comments/3/edit" or
No route matches [DELETE] "/comments/3"
今はわかりません。
すぐに使えるデモはありますか?
アップデート:
ルート.rb内:
resources :posts do
resources :comments
end
注:以下は私自身が手動で打ち明けたものです。
Railsによって生成される構成は次のとおりです。
resources :posts
resources :comments
コメントビルドフォームで、新しいコメントを作成するための投稿URLは「/ posts / 1 / comments」である必要があります。そうでない場合、投稿URLは「/ comments」になり、投稿とコメントは関連付けられません。