2014-02-04 2 views
0

я использую валидации 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?

ответ

2

Если @error представляет собой массив, который, как представляется, будет, то вот как он появится.

То, что вы, вероятно, хотите есть:

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

Нечто подобное будет свернуть его в строку. flatten возвращает массив.

+0

Используйте to_sentence, он красивее как в своей сигнатуре, так и в ее выходе. – DiegoSalazar

+1

Большое спасибо! :) (как для 'to_sentence' я использую Sinatra :)) – Faery

Смежные вопросы