2016-04-27 36 views
1

也許這有一個簡單的解釋,但我很好奇,怎麼我的用戶new.html.haml提交按鈕知道/知道它標記爲應用程序中的「創建用戶」自動視圖?這是Rails convension因爲動作和/或路由來自UsersController和/或的usermodel?怎麼我的提交按鈕自動將自己標註爲「創建用戶」

用戶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 

回答

2

對於創建操作,這是一個Rails約定的形式提交按鈕的形式爲「創建」。您的重寫此通過添加一個字符串後提交。

例如:

f.submit "Sign up" 
1

由表單helper form_for產生的標籤。它知道你的模型(@user),如果它是一個保存或更新操作。

https://github.com/rails/rails/blob/9f44aa08636dfbba9261f4350ec14684425c4b7b/actionview/lib/action_view/helpers/form_helper.rb#L1814 爲提交助手和 https://github.com/rails/rails/blob/9f44aa08636dfbba9261f4350ec14684425c4b7b/actionview/lib/action_view/helpers/form_helper.rb#L1873 如何創建標籤。

你可以通過自己的標籤:

f.submit "DO THIS NOW"