2016-05-01 7 views
1

Ich habe ein Formular, das ein Textfeld für Name hat, es hat eine Anwesenheitsvalidierung darauf. Wenn ein Benutzer vergisst, den Namen einzugeben, wird das Textfeld rot, das ist alles in Ordnung, aber ich möchte meine Ansicht ein bisschen aufräumen, aber ich weiß nicht wie? Vielleicht ein Helfer? Vielleicht eine Methode? Ich bin ein bisschen neu bei Schienen und ich suche nach Ratschlägen zu diesem Problem. Hier ist mein Code für die Ansicht.Fehlerbedingungen wurden aus der Ansicht entfernt. -Rails

VIEW

<% if f.object.errors[:name].present? %> 
    <%= f.text_field :name, :class => 'alert' %> 
    <div class="validation"> 
     <% f.object.errors[:name].each do |error| %> 
     <%= error %> 
     <% end %> 
    </div> 
     <% else %> 
     <%= f.text_field :name %> 
     <% end %> 

Es ist ein ziemlich Standard, wenn sonst statment aber ich seine ein wenig zu hässlich für die Ansicht denken würde.

Antwort

0

Sie können mit Ihrer Modellvalidierung ein ähnliches Ergebnis erzielen. Wenn Sie eine Anwesenheitsprüfung für ein Modell benötigen, wird dem Benutzer mitgeteilt, dass das Feld nicht leer sein darf. Dadurch können Sie dem Benutzer mitteilen, dass er ein Formularfeld nicht leer lassen kann, ohne es manuell in Ihren Ansichten zu codieren.

Beispiel Post Model - app/models/post.rb

class Post < ActiveRecord::Base 
    validates :title, :presence => true 
    validates :body, :presence => true 
end 

Wenn der Benutzer jetzt mit der Form entweder Titel oder Körper einreichen versucht leer, dann werden sie aufgefordert, die Form erneut einzureichen, mit einem kleiner Tipp: "Bitte dieses Feld ausfüllen".

In der Ansicht ist keine Logik erforderlich, um dies zu erreichen, einfach die Anwesenheit in Ihrem Modell überprüfen.

+0

Link zum Tooltip screenshot -! [Validierungsfehler] (http://i.imgur.com/A9PyYuD.png) –