Как мне привязать link_to к некоторому html ruby-коду?

Как мне связать ссылку вокруг кода? Я не могу понять, как передать несколько строк с кодом ruby ​​на один метод link_to. Результат, который я ищу, заключается в том, что вы щелкаете по столбцу и получаете страницу показа:

<div class="subcolumns">
  <div class="c25l">
        <div class="subcl">
        <%= image_tag album.photo.media.url(:thumb), :class => "image" rescue nil  %>
        </div>
    </div>
  <div class="c75r">
        <div class="subcr">
            <p><%= album.created_at %></p>
            <%= link_to h(album.title), album %>
            <p><%= album.created_at %></p>
            <p><%= album.photo_count %></p>
        </div>
  </div>
</div>

Ответ 1

link_to принимает блок кода ( >= Rails 2.2), который он будет использовать в качестве тела тега.

Итак, вы делаете

<%= link_to(@album) do %>
  html-code-here
<% end %>

Но. Я уверен, что для вставки тега div внутри тега a недействителен HTML.

EDIT: добавлен символ = для комментария Амина Арианы ниже.

Ответ 2

Кроме того, это может быть проблемой для некоторых:

Обязательно напишите <%=, если вы выполняете простую ссылку с кодом в нем вместо <%.

например.

<%= link_to 'some_controller_name/some_get_request' do %>
  Hello World
<% end  %>

Ответ 3

Для более старых версий Rails вы можете использовать

<% content_tag(:a, :href => foo_path) do %>
  <span>Foo</span>
<% end %>

Ответ 4

Вы можете использовать link_to с блоком:

<% link_to(@album) do %>
    <!-- insert html etc here -->
<% end %>

Ответ 5

Небольшое отставание в этом ответе, которое я знаю, но я был направлен здесь сегодня и не нашел хорошего ответа. Должно работать следующее:

<% link_to raw(html here), @album %>