2013-02-23 5 views
10

У вас есть небольшой вопрос.error.full_messages format in rails 3

Мои вспышки уведомления/оповещения внутри [" "]

enter image description here

В мой контроллер, я должен показать ошибки, если форма не сохраняется.

format.html { redirect_to new_project_procurement_management_plan_path, alert:"#{@project_procurement_management_plan.errors.full_messages}"} 

Вот как я положил вспышки в просмотров:

_alert.html.erb:

<% [:notice, :error, :alert].each do |level| %> 
    <% unless flash[level].blank? %> 
    <div class="alert alert-<%= flash_class(level) %>" id="flash"> 
     <a class="close" data-dismiss="alert" href="#">×</a> 
     <%= content_tag :p, flash[level] %> 
    </div> 
    <% end %> 
<% end %> 

И в моем хелперов файле:

#Flash Message 

    def flash_class(level) 
     case level 
     when :notice then "success" 
     when :error then "error" 
     when :alert then "error" 
    end 
    end 

Теперь, как можно Я удаляю свой дисплей ошибок внутри [" "]

Кто знает, где его настроить? Благодарю.

EDIT

Это сообщение проверки в моей модели:

def equality 
    self.items.each do |item| 
     errors.add(:base, "#{item.description.capitalize}: Quantity must be equal to the breakdown of quantity!") if item.months != item.qty 
    end 
    end 

ответ

24

errors.full_messages возвращает массив всех сообщений об ошибках, которые почему вы видите скобки и кавычки. Вы можете использовать .to_sentence, чтобы превратить этот массив в читаемое предложение.

@project_procurement_management_plan.errors.full_messages.to_sentence

+0

спасибо. Когда я использую это для заполнения предупреждающего сообщения с помощью javascript, он использует забавные символы: «Building can ' t be blank» ---> любая идея, как я могу избавиться от «& # 39», любые указатели будут очень благодарны – BKSpurgeon

+0

Looks например, javascript пытается дезинформировать вашу строку для вас, вам, вероятно, просто нужно использовать что-то вроде 'unescape()' или аналогично, чтобы вернуть форматирование в нормальное состояние. –

+0

Чтобы добавить к вашему ответу, я обнаружил, что проверка того, что возвращается полезно. Я бы либо использовал оператор debug в контроллере, чтобы посмотреть, что '@ project_procurement_management_plan.errors.full_messages' возвращает или то же самое в консоли Rails. – Tass