9

nil置くときになぜ追加する必要があるのか​​ 疑問に思っていました:class => "class_name"

<%= submit_tag nil, :class => "class_name" %>

しかし、これのために:

<%= f.submit class: "class-Name" %>

追加する必要はありませんnil

ありがとう

4

5 に答える 5

13
     <%= submit_tag("Update", :id=>"button", :class=>"Test", :name=>"submit") %>

最初のパラメーターは必須で、値になります。指定する任意のパラメーターは、:key=>"value" のようなハッシュで実行できます。

于 2014-05-13T05:13:15.053 に答える
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

2 つの引数を取ります。1 つ目はvalueデフォルトで「変更を保存」で、2 つ目はオプションのハッシュです。渡さない場合nil、それが入力に必要な値であると想定されます。

于 2013-04-03T22:14:39.870 に答える
1

2つの異なる方法なので...

「submit」メソッドは、メソッドが呼び出されたフォームとフォームの作成に使用されたオブジェクトからキャプションを推測できるため、キャプションを取りません。

「submit_tag」メソッドは、フォーム オブジェクトでは呼び出されません。これは、よりカスタマイズされたフォーム構築 (たとえば、activerecord モデルからより分離されたもの) に使用されるため、コードはキャプションを推測できず、最初の引数として値を取得する必要があります。すべての「formelement_tag」メソッド (たとえば、ここに文書化されています) はこのようなものであり、データ モデルに基づいてより少ない推論を行うことができます。

于 2013-04-03T22:14:30.783 に答える
0

_tag 一連のメソッドは、通常、name パラメーターを必要とします (そうしないと、かなり役に立たないタグになるため、ハッシュの一部ではなく、常に最初の引数になります。送信ヘルパーはフォームの一部として呼び出されるため、Rails はフィールドのname プロパティを指定し、オプションで最初の引数をハッシュすることができます。

于 2013-04-03T22:16:14.053 に答える
0

明らかな答えは、submit_tagsubmitは、異なる引数を取る単純な異なるフォーム ヘルパー メソッドです。

于 2013-04-03T22:14:00.343 に答える