`button_tag` 而不是 `submit_tag`

Cyr*_*ris 4 html ruby-on-rails ruby-on-rails-4

我想在我的表单提交按钮中包含一个字形。里面不可能包含字形submit_tag,所以我使用了button_tag.

但是,在某些表单中,我有不同的 submit_buttons(例如preview| for_real),并且我使用了:

button "commit"
Run Code Online (Sandbox Code Playgroud)

控制器中的消息以进行特定操作:

if params[:commit] == 'Preview'
Run Code Online (Sandbox Code Playgroud)

仅适用于submit_tag.

1. 我想了解两者之间的区别。

导轨 submit_tag

submit_tag "Edit this article"
# => <input name="commit" type="submit" value="Edit this article" />
Run Code Online (Sandbox Code Playgroud)

button_for

<%= button_tag(type: "submit", class: "btn btn-default") do %>
    Edit this article <i class="icon-repeat"></i>
<% end %>
Run Code Online (Sandbox Code Playgroud)

区别是否只是input将提交不允许 HTML/glyphicons 的提交消息?

2.submit_tag内部带有字形的行为(提交消息)的解决方法是什么?

还是不建议使用该commit值,而应该使用其他可以使用的值button_tag

Cyr*_*ris 5

解决方案是解决方案实际上没有问题button_tag。因此submit_tag是没用的(直到我发现它比 button_tag 有其他一些优势)。

button_tag(name: 'commit', type: 'submit', value: 'Edit this article')
button_tag(name: 'commit', type: 'submit', value: 'Publish')
Run Code Online (Sandbox Code Playgroud)

尽管它们都像<button>在 HTML 中一样呈现,但只会传递被单击的值!