如何在一些HTML红宝石代码周围包装link_to?


116

如何在查看代码周围包装链接?我不知道如何将红宝石代码的多行传递给单个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>

Answers:


269

link_to 接受一段代码(> = Rails 2.2),它将用作标签的主体。

所以你也是

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

但是我很确定diva标签内嵌套一个无效的HTML。

编辑:=根据下面的Amin Ariana的评论添加了角色。


17
此注释仅供参考:<a> <div> </ div> </a>在HTML5中有效,但在较早的HTML规范中无效。有关类似问题,请参见stackoverflow.com/questions/796087/make-a-div-into-a-link
chucknelson

Rails 2.3.8使用上面的语法仍然得到“语法错误,意外的')'”。
daedelus_j 2013年

如果您有更复杂的路径,则可以添加参数,但缺少初始内容,例如<%= link_to some_path,方法::post%>
Obromios

13

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

<%=如果您使用的是代码而不是的简单链接,请确保编写<%

例如

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

我认为这在Rails 3+中是必需的
m33lky 2012年



-2

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

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

5
不应使用此格式,因为在其中输入的所有html raw都易于使用XSS。
Aurril '12

不一定是从您自己的应用程序中某个安全的地方生成HTML的情况。尽管如此,还是最好在99%的情况下避免这种情况。(更不用说上面的代码有错误了,应该以<%=而不是<%。开头)
GMA 2013年

不是最好的方法。此处的html必须由您自己的应用程序生成,并确保安全。上面的答案还有其他更好的方法。
2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.