在Rails中link_to方法如何添加HTML选项?

3
我是一名对Ruby和Rails完全陌生的初学者,现在我正在尝试创建一个退出链接(使用Devise进行身份验证)。 我想将自定义的: method参数传递给link_to函数,并设置自定义类。但我似乎只能做到其中一种。请帮助我解决这个问题。
当我尝试:
<%= link_to "Sign out", destroy_user_session_path, :method => :delete, { :class => 'signout'}   %>

我点击链接得到了正确的结果,但是我的样式丢失了。另一方面,当我尝试:

<%= link_to "Sign out", destroy_user_session_path, { :class => 'signout'}, :method => :delete %>

我得到了我想要的样式,但链接请求被传递为GET而不是DELETE,导致路由错误。
我错过了什么?
2个回答

7
尝试将:class:method同时放置在哈希内。
因此: <%= link_to "Sign out", destroy_user_session_path, { :class => 'signout', :method => :delete} %>

1

这里不需要哈希,因为它已经是哈希了 :D

link_to "Sign out", destroy_user_session_path, method: "delete", class: "signout"

利润!


好的,谢谢!那么像这样的命名参数,哈希表总是可选的吗? - sak
1
只有在 Ruby 方法的哈希是最后一个参数的情况下才是这样。 - fl00r
1
@sak 它们不是命名参数(Ruby 没有这些),只是当方法的最后一个参数是哈希时,允许省略 {} - Andrew Marshall

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接