我的提交按钮如何自动将自己标记为 "Create User"

How did my submit button automatically label itself as "Create User"

也许这有一个简单的解释,但我很好奇我的用户 new.html.haml 提交按钮 knows/knew 如何在应用程序视图中自动将其标记为 "Create User"?这是一个 rails 约定,因为动作 and/or 路由来自 UsersController and/or 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

对于创建操作,Rails 约定表单提交按钮具有表单 "Create "。您可以通过在提交后添加一个字符串来覆盖它。

例如:

f.submit "Sign up"

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