nil
置くときになぜ追加する必要があるのか 疑問に思っていました:class => "class_name"
<%= submit_tag nil, :class => "class_name" %>
しかし、これのために:
<%= f.submit class: "class-Name" %>
追加する必要はありませんnil
ありがとう
nil
置くときになぜ追加する必要があるのか 疑問に思っていました:class => "class_name"
<%= submit_tag nil, :class => "class_name" %>
しかし、これのために:
<%= f.submit class: "class-Name" %>
追加する必要はありませんnil
ありがとう
<%= submit_tag("Update", :id=>"button", :class=>"Test", :name=>"submit") %>
最初のパラメーターは必須で、値になります。指定する任意のパラメーターは、:key=>"value" のようなハッシュで実行できます。
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
、それが入力に必要な値であると想定されます。
2つの異なる方法なので...
「submit」メソッドは、メソッドが呼び出されたフォームとフォームの作成に使用されたオブジェクトからキャプションを推測できるため、キャプションを取りません。
「submit_tag」メソッドは、フォーム オブジェクトでは呼び出されません。これは、よりカスタマイズされたフォーム構築 (たとえば、activerecord モデルからより分離されたもの) に使用されるため、コードはキャプションを推測できず、最初の引数として値を取得する必要があります。すべての「formelement_tag」メソッド (たとえば、ここに文書化されています) はこのようなものであり、データ モデルに基づいてより少ない推論を行うことができます。
_tag 一連のメソッドは、通常、name パラメーターを必要とします (そうしないと、かなり役に立たないタグになるため、ハッシュの一部ではなく、常に最初の引数になります。送信ヘルパーはフォームの一部として呼び出されるため、Rails はフィールドのname プロパティを指定し、オプションで最初の引数をハッシュすることができます。
明らかな答えは、submit_tag
とsubmit
は、異なる引数を取る単純な異なるフォーム ヘルパー メソッドです。