我希望在普通的Activerecord表中有一个“删除用户”链接,但我无法弄清楚如何在haml中纠缠内联ruby。
我有这个:
%tbody
- @users.each do |user|
%tr
%td= user.name
%td= user.login
%td
%a
%img{:src => '../images/delete.png', :title => 'Delete user'}
如何制作
- user.destroy
是Haml的可点击链接吗?
答案 0 :(得分:7)
我想你想要
%tbody
- @users.each do |user|
%tr
%td= user.name
%td= user.login
%td
= link_to image_tag('delete.png', :title => "Delete #{user}"), user_path(user), :method => :delete)
请参阅ActionView::Helpers::UrlHelper#link_to
或者,如果您没有使用ActionPack
,
%tbody
- @users.each do |user|
%tr
%td= user.name
%td= user.login
%td
%a{:href => "/users/#{user.id}?_method=delete"}
%img{:src => '/images/delete.png', :title => "Delete #{user}"}
答案 1 :(得分:2)
这是在HAML中处理内联Ruby的一个很好的技巧。它甚至允许你在链接后使用标点符号(注意“!”)(意思是真正的内联)。
来自HAML FAQ:
如果您正在插入由助手(如链接)生成的内容,那么它就更容易了:
%p== I like #{link_to 'chocolate', 'http://franschocolates.com'}!
答案 2 :(得分:1)
- @users.each do |user|
= link_to user_path(user) do
= image_tag 'delete.png', :title => 'Delete user'