Как мне привязать 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 %>