Ruby on Rails:使用submit_tag放置类

hel*_*llo 9 ruby-on-rails

我想知道为什么我们必须nil在推杆时添加一个:class => "class_name"

<%= submit_tag nil, :class => "class_name" %>
Run Code Online (Sandbox Code Playgroud)

但为此:

<%= f.submit class: "class-Name" %>
Run Code Online (Sandbox Code Playgroud)

我不需要添加 nil

谢谢

小智 12

     <%= submit_tag("Update", :id=>"button", :class=>"Test", :name=>"submit") %>
Run Code Online (Sandbox Code Playgroud)

第一个参数是必需的,它将是值,它们是您要指定的任何参数,可以使用以下哈希方式完成:key =>"value".


Luí*_*lho 9

查看submit_tag方法的实现方式可以清楚地回答您的问题.

  def submit_tag(value = "Save changes", options = {})
    options = options.stringify_keys

    if disable_with = options.delete("disable_with")
      options["data-disable-with"] = disable_with
    end

    if confirm = options.delete("confirm")
      options["data-confirm"] = confirm
    end

    tag :input, { "type" => "submit", "name" => "commit", "value" => value }.update(options)
  end
Run Code Online (Sandbox Code Playgroud)

它需要两个参数,第一个是value默认情况下是"保存更改",第二个是Hash of options.如果你没有通过nil那么它将假设这是你想要输入的值.


Jas*_*Kim 0

明显的答案是submit_tagsubmit是不同形式的辅助方法,它们采用不同的参数。