Twitter-Bootstrap のスタイリングを使用してフォームが不適切に送信されたときに、単純にフラッシュ メッセージをレンダリングしようとしています。
次のエラーが発生し続けるため、明らかに何かが欠けています。
TypeError in NewslettersController#create
can't convert Symbol into String
以下のコード
意見
<div class="footer_newsletter_container">
<%= image_tag("envelope.png", :border=>0, :class => '') %> Sign up for our newsletter</br></br>
<%= simple_form_for Newsletter.new do |f| %>
<%= f.input :email, :label => false, :placeholder => 'Enter Your Email Address', class: "floatleft" %><%= f.button :submit, 'Submit', class: "btn floatleft" %>
<% end %>
<%= render "layouts/messages" %>
</div>
部分的
<% flash.each do |name, msg| %>
<div class="alert alert-<%= name == :notice ? "success" : "error" %>">
<a class="close" data-dismiss="alert">×</a>
<%= content_tag :div, msg, :id => "flash_#{name}" if msg.is_a?(String) %>
</div>
<% end %>
コントローラ
class NewslettersController < ApplicationController
def create
@newsletter = Newsletter.new(params[:newsletter])
if @newsletter.save
redirect_to :back, notice: "You have been added to our newsletter."
else
redirect_to :back, flash[:error] = "Oops, something went wrong. Please try again"
end
end
def destroy
@newsletter = Newsletter.find(params[:id])
@newsletter.destroy
end
end