Выполнить код рубина в ссылке в Haml - PullRequest
4 голосов
/ 09 апреля 2010

Я хочу иметь ссылку «удалить пользователя» в обычной таблице Activerecord, но я не могу понять, как изменить встроенный рубин в haml.

У меня есть это:

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

Ответы [ 3 ]

7 голосов
/ 09 апреля 2010

Я думаю, что вы хотите

%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}"}
2 голосов
/ 25 августа 2011

Вот хороший совет по работе со встроенным Ruby в HAML. Он даже позволяет вам использовать знаки препинания (обратите внимание на «!») После ссылок (это означает, что действительно встроенный).

Из HAML FAQ :

Если вы вставляете что-то, сгенерированное помощником, например ссылку, это еще проще:

%p== I like #{link_to 'chocolate', 'http://franschocolates.com'}!
1 голос
/ 09 апреля 2010
- @users.each do |user|
  = link_to user_path(user) do
    = image_tag 'delete.png', :title => 'Delete user'
...