tags:

views:

250

answers:

2

I want to have a "delete user" link in a normal Activerecord table, but I can't figure out how to wrangle the inline ruby in haml.

I have this:

   %tbody
    - @users.each do |user|
      %tr
        %td= user.name
        %td= user.login
        %td
          %a
            %img{:src => '../images/delete.png', :title => 'Delete user'}

How do I make the

- user.destroy

be a clickable link in Haml?

+4  A: 

I think you want

%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)

See ActionView::Helpers::UrlHelper#link_to

Or, if you're not using 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}"}
James A. Rosen
I'm using Sinatra. Is there a way to do it without "link_to" and "image_tag"?
thermans
+1  A: 
- @users.each do |user|
  = link_to user_path(user) do
    = image_tag 'delete.png', :title => 'Delete user'
Justice