Rails:没有括号的错误消息

时间:2012-10-24 13:03:25

标签: ruby-on-rails

如何在没有括号和引号的情况下显示Rails错误消息?

当出现错误消息时,它看起来像:

["please fill out domain"]["please fill out email"]

如何删除括号和引号?

模型

validates :domain,
          :presence => { :message => 'please fill out domain'},
          :uniqueness => { :message => 'domain already registered', :case_sensitive => true }
validates :email,
          :presence => { :message => 'please fill out email'},
          :uniqueness => { :message => 'email already registered', :case_sensitive => true }

控制器

我指定了模板的网址(请参阅format.html)因为我正在使用不同的控制器

def create

  respond_to do |format|
    # save form data
    @login = Login.new(params[:login])

    # if validation fails, throw error messages
    if !@login.save
      flash[:error] = @login.errors.to_a if @login.invalid?
    end

    # render landingpage
    format.html { render :template => 'landingpage/index' }
    format.js { render :action => 'create' }

  end

end

create.js.erb

<% if @login.errors.any? %>
  // error

  var error_string = "";
  <% @login.errors.values.each do |msg| %>
    error_string += "<%= msg %>";
  <% end %>

  $("#flash_messages").html(error_string);

<% else %>
 // no error
<% end %>

查看

<div id="flash_messages"></div>

1 个答案:

答案 0 :(得分:2)

当您遍历完整的错误消息时,您将收到干净的文本

在create.js.erb中,编写如下的迭代:

@login.errors.full_messages.each do |msg|