実現したいこと
Ruby on Rails Tutorialの拡張機能として、micropostに返信機能をつけようとしています。
それにあたって、チュートリアルの中で作ったUserモデル、Micropostモデルに加えて新たにReplyモデルを作り、
この三者を関連付け(アソシエーション)、それぞれのデータを取得しやすくしました。
今、edit、update、destroyアクションを実装していく中でこのアソシエーション用いてどのように
データを取得してきたら良いかわからず困っている、という状況です。
モデル
app/models/user.rb
ruby
1class User < ApplicationRecord 2 has_many :microposts, dependent: :destroy 3 has_many :replies, dependent: :destroy 4....
app/models/micropost.rb
ruby
1class Micropost < ApplicationRecord 2 belongs_to :user 3 has_many :replies 4....
app/models/replies.rb
ruby
1class Reply < ApplicationRecord 2 belongs_to :micropost 3 belongs_to :user 4end
コントローラ
app/controllers/replies_controller.rb
ruby
1.... 2#destroyのみを抜粋 3 def destroy 4 @micropost = Micropost.find(params[:micropost_id]) 5 @replies = @micropost.replies 6 Reply.find(params[:micropost_id]).destroy 7 flash[:success] = "リプライを削除しました" 8 redirect_to @micropost 9 end 10....
ビュー
_app/views/replies/reply.html.erb
(パーシャルの中身のみ記載)
html
1 <li class="reply_feed"> 2 <span class="content"> 3 <%= reply.response %> 4 <% if current_user?(reply.user) %> 5 <%= link_to "編集", edit_micropost_reply_path(micropost_id: @micropost, reply_id: reply.id), class: 'btn btn-warning' %> 6 <%= link_to "削除", micropost_reply_path(micropost_id: @micropost, reply_id: reply.id), method: :delete, class: 'btn btn-danger', data: {confirm: "削除しますか?"} %> 7 <% end %> 8 </span> 9 </li>
エラーの中身
Replyのid: 257がない?
このURLもなんだか想定しているものと違う気がします。
このデータベース上のid: 14を削除しようとしているので、上のコードだと指定しているものが違う気がします。
どのように書くのが正しいかわかりましたらご教示いただけるとありがたいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。