我对Ruby on Rails比较陌生。截至目前,我的Rails 2.3.8应用程序中的一个视图中有这个工作代码:
<% form_for(@configuration) do |f| %>
<%= f.text_field :parameter_a %>
<%= f.text_field :parameter_b %>
<%= button_to( "Apply", {} , { :method => "put" } ) %>
<% end %>
按预期按“应用”按钮调用控制器中的update
。现在我想以超链接样式显示按钮,我正在寻找最有效的方法。
也许有其他方法,但我没有弄清楚如何正确使用link_to
。它从未传递PUT请求中的更新值。如果你推荐link_to
,请提供一些提示,如何做到这一点。这是非工作代码:
<%= link_to( "Apply", configuration_path( @configuration ), { :method => "put" } ) %>
非常感谢。
答案 0 :(得分:0)
提交带有HTML链接的表单的唯一方法(我知道)是通过使链接触发一些javascript。
这是伪代码,用您选择的javascript库替换实际的表单提交:
<% form_for(@configuration), :id=>'my_form' do |f| %>
<%= f.text_field :parameter_a %>
<%= f.text_field :parameter_b %>
<%= link_to_function "Apply", "$('my_form').submit()" %>
<% end %>
答案 1 :(得分:0)
一种方法是使用html button
元素和一些css。我更喜欢这种技术,因为它不需要JS。这也可以在输入标签上完成,使用它们的类型或类来选择它们,但按钮更好;)
顺便说一句,你不应该在那里使用button_to
。 Rails'button_to
标签应该在表单之外使用(因为它构建了自己的表单),你应该使用f.submit
。它将生成一个提交类型的输入。或者,您可以使用提交按钮。
回到使用button
标签,我更喜欢创建一个帮手:
def submit_button(text)
content_tag :button, text, :type => :submit
end
然后,一旦你使用了它,你可以使按钮看起来像这个css的链接:
button {
background-color: transparent;
border: none;
color: #1f44ff;
text-decoration: underline;
}
button:hover {
cursor: pointer;
}
您可能需要使用JS来使悬停状态在某些浏览器中起作用,但它仍然比使用JS提交表单更好。