如何围绕某些html ruby​​代码包装link_to?

时间:2009-07-06 10:23:03

标签: ruby-on-rails 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>

5 个答案:

答案 0 :(得分:260)

link_to takes a block of code(&gt; = Rails 2.2),它将用作标记的正文。

所以,你做了

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

我非常确定在div代码中嵌套a是无效的HTML。

编辑:在Amin Ariana的评论下面添加了=个字符。

答案 1 :(得分:12)

此外,这可能是一些问题:

如果您正在使用其中的代码而不是<%=进行简单链接,请务必撰写<%

e.g。

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

答案 2 :(得分:8)

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

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

答案 3 :(得分:6)

您可以将link_to与块一起使用:

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

答案 4 :(得分:-1)

我知道这个回复有点滞后 - 但今天我被引导到这里,并没有找到一个好的答案。以下应该有效:

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