前提・実現したいこと
- RailsでTwitterのようなアプリを作成中。
- インスタンスのエラーメッセージをflashに格納することで、異なるコントローラで受け取ってviewで出力している。
発生している問題
flashに格納した値はcontent_tag
ヘルパーで受け取ってエラー表示用のHTMLを生成しているが、
["コメントを入力してください"]
などという形で[""]
を含んだflashが表示されてしまう。
[""]
を除いてエラー内容だけを表示させるにはどうしたら良いのでしょうか?
該当のソースコード
rb:app/controllers/comments_controller.rb
# POST /microposts/:micropost_id/comments def create @comment = current_user.comments.new(comment_params) if @comment.save flash[:success] = "コメントを投稿しました" redirect_to request.referrer || root_url else # Commentインスタンスの値をflashに格納してMicropostコントローラから受け取る redirect_to request.referrer || root_url, flash: { danger: @comment.errors.full_messages } end end
erb:app/views/layouts/application.html.erb
<body> <%= render 'layouts/header' %> <div class="container"> <% flash.each do |message_type, message| %> <%= content_tag(:div, message, class: "alert alert-#{message_type}") %> <% end %> <%= yield %> <%= render 'layouts/footer' %> </div> </body>
まだ回答がついていません
会員登録して回答してみよう