2013-02-23 11 views
10

Masz tu małe pytanie.errors.full_messages format in rail 3

mojej uwadze Flash/Alarmy jest wewnątrz [" "]

enter image description here

W moim kontrolera, muszę pokazać błędy, jeśli formularz nie zostanie zapisany.

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

Oto jak kładę migać do widoków:

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

aw moim pliku pomocnika:

#Flash Message 

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

Teraz w jaki sposób można Usuwam swój komunikat o błędzie wewnątrz [" "]

Ktoś wie, gdzie to skonfigurować? Dzięki.

EDIT

To jest wiadomość walidacji w moim modelu:

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 

Odpowiedz

24

errors.full_messages zwraca tablicę wszystkich komunikatów o błędach, dlatego widać wsporniki i cytaty. Możesz użyć .to_sentence, aby przekształcić tablicę w czytelne zdanie.

@project_procurement_management_plan.errors.full_messages.to_sentence

+0

dziękuję. Kiedy używam tego do zapełnienia komunikatu z ostrzeżeniem za pomocą javascriptu, używa on zabawnych symboli: "Building can ' t be blank" ---> jakikolwiek pomysł, jak mogę się pozbyć "& # 39" jakichkolwiek wskazówek byłby bardzo doceniany – BKSpurgeon

+0

Wygląda tak jak javascript próbuje oczyścić twój ciąg dla ciebie, prawdopodobnie musisz po prostu użyć czegoś takiego jak "unescape()" lub podobnego, aby formatowanie powróciło do normy –

+0

Aby dodać do twojej odpowiedzi, stwierdziłem, że sprawdzam, co jest zwracane jest pomocny. Chciałbym użyć instrukcji debugowania w kontrolerze, aby zobaczyć, co zwraca '@ project_procurement_management_plan.errors.full_messages' lub samo w konsoli' Rails'. – Tass