我们应该如何在Rails中将div与link_to结合起来?

时间:2013-08-06 09:47:56

标签: ruby-on-rails html link-to

我的初衷是在图像上显示一些文字。同时,当我们点击图片时,网页将被重定向。 我使用link_to函数与包含背景图像的div。 代码是这样的:

 <%= link_to raw('<div style="background-image:url(<%= image_url  '1.jpg'%>);width:340px;"> This is a  test</div>'),index_by_dvp_domain_path %>

但是系统告诉我有SyntaxError。

5 个答案:

答案 0 :(得分:4)

您可以将link_to传递给包含您要显示的内容的块。因此,您不必使用link_to(display, url, options={}),而是获得link_to(url, option={}, &block)

<%= link_to index_by_dvp_domain_path do %>
  <div style="background-image: url(<%= image_url '1.jpg'%>);width:340px;"> 
   This is a  test
  </div>
<% end %>

执行此操作后,您可以像普通的html一样对待它。

与往常一样,我建议尝试将任何样式移到它自己独立的样式表中。

答案 1 :(得分:1)

最好的方法是使用

<%= link_to index_by_dvp_domain_path do
      content_tag(:div, 'This is a  test',:style=>"background-image:url(#{image_url}  '1.jpg');width:340px;" )
    end
%>

OR

<%= link_to content_tag(:div, 'This is a  test',:style=>"background-image:url(#{image_url}  '1.jpg');width:340px;" ), index_by_dvp_domain_path  %>

答案 2 :(得分:0)

请试试

<%= link_to raw('<div style="background-image:url(#{image_url  '1.jpg'}%>);width:340px;"> This is a  test</div>'),index_by_dvp_domain_path %>

答案 3 :(得分:0)

我认为即使你有一个包含多个标签的大块,使用如下的Link_to也会简单得多:

<%= link_to desired_path do %>
    <div class="linkable">
        <another div>
             ... some other tags
        </another div>
    </div>
<% end %>

我建议你为鼠标悬停事件使用不同的背景颜色,因为它会向观众显示它是一个链接!

在.css文件中:

.linkable:hover{
    background-color: red;
}

答案 4 :(得分:-2)

我很惊讶地看到没有人想出在Rails中这样做的常规方法。

<%= link_to image_tag("/images/1.jpg",:size => "340X340"),index_by_dvp_domain_path %>