2013-02-23 11 views
10

Hai una piccola domanda qui.errors.full_messages formato in binari 3

La mia opinione Flash/avvisi è all'interno [" "]

enter image description here

Nel mio controller, devo dimostrare gli errori se il modulo non viene salvato.

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

Ecco come ho messo a lampeggiare in vista:

_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 %> 

E nel mio file helper:

#Flash Message 

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

Ora, come può Rimuovo la visualizzazione degli errori all'interno di [" "]

Qualcuno sa dove configurarlo? Grazie.

EDIT

Questo è il messaggio di convalida nel mio modello:

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 

risposta

24

errors.full_messages restituisce un array di tutti i messaggi di errore che è il motivo per cui si vedono le staffe e citazioni. È possibile utilizzare .to_sentence per trasformare quell'array in una frase leggibile.

@project_procurement_management_plan.errors.full_messages.to_sentence

+0

grazie. Quando lo uso per popolare un messaggio di avviso utilizzando javascript utilizza simboli divertenti: "Edificio può ' essere vuoto" ---> qualsiasi idea su come posso sbarazzarmi del "& # 39" qualsiasi suggerimento sarebbe molto apprezzato – BKSpurgeon

+0

Sguardi come se il javascript stia cercando di disinfettare la tua stringa per te, probabilmente devi solo usare qualcosa come "unescape()" o simile per riportare la formattazione alla normalità –

+0

Per aggiungere alla tua risposta, ho scoperto che ispeziona cosa viene restituito è utile Avrei usato un'istruzione debug nel controller per visualizzare i ritorni '@ project_procurement_management_plan.errors.full_messages' o gli stessi in una console' Rails'. – Tass

Problemi correlati