我的提交按钮是如何自动标记为“创建用户”的

时间:2016-04-27 03:42:31

标签: ruby-on-rails ruby haml erb

也许这有一个简单的解释,但我很好奇我的用户new.html.haml提交按钮如何知道/知道在应用程序视图中自动将其标记为“创建用户”?这是一个rails convension,因为action和/或路由来自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 个答案:

答案 0 :(得分:2)

对于创建操作,表单提交按钮的Rails约定为“创建”形式。您可以通过在提交后添加字符串来覆盖它。

例如:

f.submit "Sign up"

答案 1 :(得分:1)

标签由表单助手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"