带括号的DataMapper验证错误

时间:2014-02-04 22:27:04

标签: ruby validation sinatra ruby-datamapper

我正在使用DataMapper的验证,但我无法获取错误消息文本:(

我试过了:

@error = user.errors.first
@error = user.errors.full_messages.first
@error = user.errors.full_messages.flatten
@error = user.errors[0]

但我仍然得到一个数组:(

在我的模板中我有

- if @error
  %p.lead= @error

我得到["This username is taken"]

如果我有

- if @error
  - @error.each do |er|
    %p.lead= er

它有效,但是没有办法只向模板发送一个字符串,它可以与%p = @error一起使用吗?

1 个答案:

答案 0 :(得分:2)

如果@error是一个数组,它似乎是一个数组,那就是它将如何出现。

你可能想要的是:

@error = user.errors.full_messages.flatten.join(', ')

这样的东西会把它折叠成一个字符串。 flatten返回一个数组。