如何将 link_to 包装到一些 html 红宝石代码中?

如何在视图代码周围包装链接?我不知道如何用 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>
85653 次浏览

You can use link_to with a block:

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

它将使用 link_to 需要一段代码(> = Rails 2.2)作为标记的主体。

所以你知道

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

但是 我非常确定在 a标记中嵌套 div是无效的 HTML。

编辑: 增加 =字符每阿明阿里亚纳的评论下面。

对于较旧的 Rails 版本,您可以使用

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

我知道这个回答有点滞后——但是我今天是被领到这里来的,没有找到一个好的答案。以下措施应该奏效:

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

Also, this may be an issue for some:

如果您正在做一个简单的链接,其中包含代码,而不是 <%,那么一定要编写 <%=

例如:。

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