1

如何在没有括号和引号的情况下显示 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 }

控制器

我指定了模板的 url(请参阅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

创建.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>
4

1 回答 1

2

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

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

@login.errors.full_messages.each do |msg|
于 2012-10-24T13:12:58.793 回答