replyボタンをおして、投稿できるようにしたい。
前提・実現したいこと
文章を投稿して、それにリプライできるような機能を付けたい。
発生している問題・エラーメッセージ
現在投稿する機能はできているのですが、リプライするところで躓いています。
https://i.gyazo.com/63747bacc206af7ca616a9cdf86e3e95.png
画像のような感じで、投稿したところからリプライする画面に映れるボタンは作ったのですがそこから画像のようになり、フォームのところに文章を入れてリプライボタンを押しても反応せず、投稿できません。これはどうすれば改善できるでしょうか?ちなみにもちろんエラーメッセージは出てきません。(説明下手ですいません)
該当のソースコード
replies_controller.rb
ruby
1class RepliesController < ApplicationController 2 before_action :require_user_logged_in 3 before_action :correct_user, only: [:destroy] 4 5 def create 6 @reply = current_user.replies.build(params[:reply_id]) 7 if @reply.save 8 flash[:success] = "メッセージをリプライしました" 9 redirect_to root_url 10 else 11 @replies = current_user.replies.order('created_at DESC').page(params[:page]) 12 flash.now[:danger] = "リプライの投稿に失敗しました" 13 render 'microposts/show' 14 end 15 end 16 17 def destroy 18 @micropost.destroy 19 flash[:success] = 'リプライを削除しました。' 20 redirect_back(fallback_location: root_path) 21 end 22 23 def show 24 @micropost = Micropost.find(params[:id]) 25 @reply = Reply.new(micropost_id: @micropost.id) 26 @replies = @micropost.replies 27 end 28 29 30 private 31 32 33 def correct_user 34 @reply = current_user.replies.find_by(id: params[:id]) 35 unless @reply 36 redirect_to root_url 37 end 38 end 39end
microposts/show.html.erb
<div class="row"> <div class="col-md-6 col-md-offset-3"> <%= form_for(@reply) do |f| %> <div class="form-group"> <%= f.label :micropost, 'Reply' %> <%= f.text_field :micropost, class: 'form-control' %> </div> <%= f.hidden_field :micropost_id %> <%= f.text_area :content %> <%= f.submit 'reply', class: 'btn btn-primary btn-block' %> <ul> <% @replies.each do |reply| %> <li><%= reply.content %></li> <% end %> </ul> <% end %>
試したこと
リダイレクトされる場所を変更したりした。
補足情報(FW/ツールのバージョンなど)
rails 5.0.7
あなたの回答
tips
プレビュー