如何使按钮在erb中作为链接工作?

时间:2012-08-16 11:04:52

标签: ruby-on-rails ruby ruby-on-rails-3

<%= link_to 'New Post', new_post_path %> 

这会生成new_post_path的链接。以前我使用的<input type="submit" class="new" name="Addlist" value="Add New" />类似按钮。那么如何让链接看起来像erb中的按钮?

3 个答案:

答案 0 :(得分:12)

由于我遇到了button_to选项不起作用的情况,因此只想抛出另一个选项。这看起来有点类似。

<%= link_to '<button type="button">New Post</button>'.html_safe, new_post_path %>

我基本上想要的是一个不会变成提交的按钮,因为我在页面上有多个与表单无关的按钮,我真的只想让它转到另一个页面。 / p>

答案 1 :(得分:10)

看看button_to。总之,它将与此类似:

<%= button_to "New Post", { :action => "new" }, :method => :get %>

虽然请注意,此方法会接受:method文档中描述的:confirmlink_to修饰符。如果未给出:method修饰符,则默认执行POST操作。您也可以在:disabled => true中传递html_options来停用该按钮。如果您使用的是RESTful路由,则可以传递:method来更改用于提交表单的HTTP动词。

答案 2 :(得分:6)

@ Ryan的答案很好,但很遗憾失败 html验证http://validator.w3.org/

错误:元素按钮不得作为a元素的后代出现。

为什么不简单地将(CSS) 应用于您的链接,并将其显示为作为按钮。

ERB:

<%= link_to "Button Text", new_post_path, class: 'button' %>

生成(有效&amp; 语义)HTML:

<a class="button" href="/post/new">Button Text</a>

然后您可以样式看起来像一样按钮。

示例:http://jsfiddle.net/nelsonic/FQK9M/7/