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

usr*_*usr 8 ruby ruby-on-rails ruby-on-rails-3

<%= link_to 'New Post', new_post_path %> 
Run Code Online (Sandbox Code Playgroud)

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

Rya*_*hih 13

只是为了抛出另一个选项,因为我有一个button_to选项不起作用的场景.这看起来有点类似.

<%= link_to '<button type="button">New Post</button>'.html_safe, new_post_path %>
Run Code Online (Sandbox Code Playgroud)

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


wal*_*.ar 10

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

<%= button_to "New Post", { :action => "new" }, :method => :get %>
Run Code Online (Sandbox Code Playgroud)

虽然要注意,此方法接受文档中描述的:method:confirm修饰符link_to.如果未:method给出修饰符,则默认执行POST操作.您也可以通过传入:disabled => true来禁用该按钮html_options.如果您使用RESTful路由,则可以传递:method更改用于提交表单的HTTP谓词.


nel*_*nic 7

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

错误:元素按钮不得显示为a元素的后代.

为什么不简单地将(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/FQK​​9M/7/