2012-08-16 38 views
6
<%= link_to 'New Post', new_post_path %> 

这产生链接到new_post_path。以前我用<input type="submit" class="new" name="Addlist" value="Add New" />,就像一个按钮。那么如何让链接看起来像erb中的按钮?如何使按钮在erb中作为链接工作?

回答

5

只是抛出另一个选项,因为我有一个方案,button_to选项不起作用。这看起来与此类似。

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

我基本上想是不会变成一个按钮提交,因为我有不相关的网页上的表单多个按钮,我真的只是想它只是去另一页。

+0

在某些导轨版本中可能会有危险。它更适合将链接设计成看起来像一个按钮。请参阅[Rails XSS](https://github.com/rails/rails_xss) – 2012-08-16 12:06:11

+1

使用http://validator.w3.org/验证此标记时,您将看到一个错误:**元素按钮不得显示为一个元素的后代。**不允许在链接中放置一个按钮......!试一试:复制https://gist.github.com/nelsonic/7986797中的文本并将其粘贴到验证器中。 – nelsonic 2013-12-16 13:16:53

8

看看button_to。总之这将是simmilar这样:

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

虽然都知道,该方法接受link_to文档中描述的:method:confirm改性剂。如果没有给出:method修饰符,它将默认执行POST操作。您也可以通过在html_options中传递:disabled => true来禁用该按钮。如果您使用RESTful路由,则可以通过:method来更改用于提交表单的HTTP动词。

5

@瑞安的答案是好的,但可悲的是失败 HTML验证http://validator.w3.org/

错误:元素按钮不能出现作为一个元素的后代。

为什么不能简单地套用一个(CSS)你的链接,使其出现作为一个按钮。

ERB:

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

产生(有效 & 语义)HTML:

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

然后你就可以风格就像一个按钮。

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