сделайте div (td) ссылкой. haml (rails)

#ruby-on-rails #ruby #ruby-on-rails-3 #ruby-on-rails-3.1 #haml

#ruby-on-rails #ruby #ruby-on-rails-3 #ruby-on-rails-3.1 #haml

Вопрос:

у меня проблема. у меня есть таблица. и я хочу сделать td в таблице ссылками

я пытался сделать так

 =link_to " ", message
  %td    
    From:
    =link_to message.sender.name,message.sender
    %br
    Theme:
    =message.theme
    %br
    Content:
    =message.content
 

но он выдает ошибку

синтаксическая ошибка, неожиданный keyword_ensure, ожидание $end

но я не знаю, о каком «конце» идет речь. Итак, как решить эту проблему? Заранее спасибо!

Комментарии:

1. Почему вы используете таблицы и BRS? Не могли бы вы не использовать divs, это становится намного проще

Ответ №1:

Согласно документам, вы можете это сделать:

 =link_to message do
  %td    
    From:
    =link_to message.sender.name,message.sender
    %br
    Theme:
    =message.theme
    %br
    Content:
    =message.content
 

что должно приводить к такой разметке:

 <a href="messages/4">
  <td>From: <a href="/senders/4">John</a><br><br/>Theme: nicetheme<br></br>Content: Blablabla</td>
</a>
 

Это AFAIK недопустимый HTML. Поэтому вы можете захотеть сделать это:

 %td
  =link_to message do      
    From:
    =link_to message.sender.name,message.sender
    %br
    Theme:
    =message.theme
    %br
    Content:
    =message.content
 

Комментарии:

1. я сделал, как вы сказали, у него нет ошибок, но он просто сделал пустую ссылку перед таблицей, например <a href=» localhost:3000/messages»></a > , но я хочу поместить <td> в <a>(

2. я сделал, как вы сказали в своей правке, это делает <a href=»localhost:3000/messages»> Из</a> в начале каждого td, а не все td в ссылке

3. ах, я нашел почему, это потому, что у меня есть link_to в ссылке, вот почему. Спасибо за помощь!!!

4. <a><td></td></a> теперь действителен HTML5.