2011-08-21 91 views
8

如何在我的公共/ images中将图像标记链接到文件background.jpg,并且单击时将用户重定向到root_url(因此,页面内容位于容器中,如果用户点击背景图片重定向回家?)谢谢!Rails 3:link_to和image_tag

+1

如果其中一个答案解决了您的困境,请接受它。谢谢! – Tass

回答

14

肯定的:

<%= link_to(image_tag("background.jpg", :alt => "home image", :width => 100, :height => 100, :title => "Click here to return to Home") "/") %> 
+0

当您这样做时,即使图像存在,链接也不会垂直拉伸以填充屏幕。所以如果你点击浏览器窗口的前几个像素,你会被重定向,但是如果你点击了其他任何你不是的地方。你有这个解决方案吗? – user852974

+0

只需在宽度和高度添加即可显示。然而,这听起来像链接周围的区域的CSS有问题。 – jschorr

+0

解决方案的确满足了这个问题。我说我们不关注CSS行为,因为它超出了这个讨论的范围。 – Tass

4

我正在寻找同样的事情,前一段时间,我发现了Rails的方式来做到这一点。

比方说,你想给你的HTML页面来呈现follwoing代码

<a title="Return Home" class="logo" href="/pages/home"> 
<img width="200" height="50" src="logo.png" alt="Logo Image"> 
</a> 

在哪里“页”是控制器和“家”是动作。这是Rails的方式。

<%=link_to(image_tag("12roots-logo.png",:size => "209x50", :alt=> "12roots"), 
{:controller=>"pages", :action=>"home"}, :title=>"Return Home", :class=>"logo") %> 
6

大多数轨标签佣工接受一个块,这意味着你可以使用do来简化你的生活。这里我用一个块与link_to

<%= link_to root_url do %> 
    <%= image_tag "background.jpg" %> 
<% end %> 

在这种情况下,的link_to预计下一个参数是路径和块发出什么样的锚套。

一般来说,我会尽量保持每行规则的一个标签助手,除非其超级微不足道,所以当线条会变得拥挤时更喜欢这种技术。这样做的一个好处是,由于标签位于不同的行,错误更容易识别。

如果您还需要其他选项,请像往常一样添加它们。例如,我将添加一个css类:

<%= link_to root_url, :class => 'imagelink' do %> 
    ...