Ruby on rails 在Flash alert Rails 3中显示错误消息

Ruby on rails 在Flash alert Rails 3中显示错误消息,ruby-on-rails,ruby,ruby-on-rails-3,validation,Ruby On Rails,Ruby,Ruby On Rails 3,Validation,如果我在模型中设置了验证消息 validates :name, :presence => {:message => 'The name cant be blank.'} 我如何让这条信息显示在闪光警报中,这是我迄今为止所尝试的 def create @message = Message.new(params[:message]) if @message.valid? ContactMailer.send_mail(@message).deliver

如果我在模型中设置了验证消息

validates :name, :presence => {:message => 'The name cant be blank.'}
我如何让这条信息显示在闪光警报中,这是我迄今为止所尝试的

def create
   @message = Message.new(params[:message])
   if @message.valid?
     ContactMailer.send_mail(@message).deliver
     redirect_to(root_path, :notice => "Thanks for your message, I will be in touch soon")
   else
     flash[:error] = @message.errors
     render :new
   end
end
但我得到的只是页面顶部的黑色错误消息条,其中没有文本,在我的布局/应用程序中,我有这个

<% flash.each do |name, msg| %>
<div class="alert alert-<%= name == :notice ? "success" : "error" %>">
  <%= content_tag :div, msg, :id => "flash_#{name}" if msg.is_a?(String) %>
</div>

如果msg.is_是一个?(字符串)%>

任何指针都值得欣赏

通过flash消息显示验证错误不是一个好主意,但如果您确实需要它:

flash.now[:error] = @message.errors[:name].first
如果您需要立即显示消息,您应该使用
flash.now[:error]


谢谢,如果我想显示多条错误消息,我会为每一条单独调用一次吗?您也可以使用
@message.errors[:name].join(“,”
@message.errors.full_messages.join(“.”)来显示所有验证消息。但是最好在字段附近显示错误(这对用户更友好),使用gem,您可以在文档中查看示例。是的,我将加入一些js验证,我只是在练习一些服务器端的东西:)甚至更好:
@message.errors.full_messages.to_句子