在新线Ruby on Rails上打印阵列

时间:2013-11-29 08:46:51

标签: ruby-on-rails ruby arrays devise ruby-on-rails-4

我正在使用Ruby on Rails,并想知道如何获取数组并在多行上打印它。

我现在使用的代码是“application_helper.rb”

flash.now[:error] = resource.errors.full_messages.join(", ")

我正在尝试显示我的devise errors like shown in this link.现在它打印出来:

电子邮件不能为空,密码不能为空,用户名不能为空

我想这样显示:

电子邮件不能为空白密码不能为空白用户名不能为空白

我可以对“application_helper.rb”文件中的行做什么?

2 个答案:

答案 0 :(得分:3)

试试这个

resource.errors.full_messages.join("<br/>").html_safe

答案 1 :(得分:1)

您可以在应用程序助手中编写方法,如下所示。

def print_formatted_errors(errors)
  content_tag :div, class: 'errors' do
    errors.each do |error|
      concat(content_tag :p, error)
    end
  end
end

你也可以为错误写一些css。

.errors > p { color: red; }

您需要从视图中调用此方法,如下所示

<%= print_formatted_errors(resource.errors.full_messages) %>