2016-04-27 11 views
1

Vielleicht hat dies eine einfache Erklärung, aber ich bin neugierig, wie mein Benutzer new.html.haml übergeben Schaltfläche weiß/wusste, es als "Create User" automatisch in der Anwendung zu bezeichnen Aussicht? Ist dies ein Railways Convention, weil die Aktion und/oder Route von UsersController und/oder UserModel kommt?Wie hat sich meine Schaltfläche "Senden" automatisch als "Create User" bezeichnet?

Benutzer new.html.haml

%h1 Sign up 
= form_for @user do |f| 
    - if @user.errors.any? 
    .error_messages 
     %h2 Form is invalid 
     %ul 
     - for message in @user.errors.full_messages 
      %li= message 
    %p 
    = f.label :email 
    %br/ 
    = f.text_field :email 
    %p 
    = f.label :password 
    %br/ 
    = f.password_field :password 
    %p 
    = f.label :password_confirmation 
    %br/ 
    = f.password_field :password_confirmation 
    %p.button= f.submit 

Antwort

2

Für eine Aktion erstellen, ist es eine Rails-Konvention für das Submit-Button Formular das Formular "Erstellen" zu haben. Sie überschreiben dies, indem Sie nach dem Senden eine Zeichenfolge hinzufügen.

Zum Beispiel:

f.submit "Sign up" 
1

Das Label form_for durch die Formular-Helfer erzeugt wird. Es weiß um Ihr Modell (@user) und ob es sich um eine Speicher- oder Aktualisierungsaktion handelt.

Siehe https://github.com/rails/rails/blob/9f44aa08636dfbba9261f4350ec14684425c4b7b/actionview/lib/action_view/helpers/form_helper.rb#L1814 für die Helfer einreichen und https://github.com/rails/rails/blob/9f44aa08636dfbba9261f4350ec14684425c4b7b/actionview/lib/action_view/helpers/form_helper.rb#L1873 dafür, wie das Etikett erstellt wird.

Sie können Ihr eigenes Label übergeben:

f.submit "DO THIS NOW"