仅用于url链接的Ruby脚本

时间:2012-10-12 03:12:59

标签: ruby-on-rails ruby ruby-on-rails-3

这是带有网址链接的照片的红宝石脚本。

<%= if property.images[0] then
      link_to image_tag (property.images[0].image.url('350x263', :jpg)),                
      user_property_image_path(user, :id => property.images[0], :property_id => property),   

    end -%>

哪部分脚本只显示url链接而不显示照片? 我尝试了这个不起作用:

<%= user_property_image_path(user, :id => property.images[0], :property_id => property), 

end -%>

3 个答案:

答案 0 :(得分:0)

这将显示链接文本 LINK TEXT HERE

<%= if property.images[0] then
      link_to 'LINK TEXT HERE',                
      user_property_image_path(user, :id => property.images[0], :property_id => property)    
    end -%>

如果您希望将URL作为链接文本,请尝试:

<% url = user_property_image_path(user, :id => property.images[0], :property_id => property) %>
<%= link_to( url, url ) if property.images[0] -%>

答案 1 :(得分:0)

这样:

<% if property.images[0] %>
  <%= link_to user_property_image_path(user, :id => property.images[0], :property_id => property) do %>
    <%= image_tag (property.images[0].image.url('350x263', :jpg)) %>
  <% end %>
<% end %>

获得与第一个示例相同的结果。 HTML锚标记需要内部内容,文本或更多html标记,如img标记。因此,呈现锚标记的link_to方法将接收内部文本作为其第一个参数,或者您可以在其块中插入内部内容,如上所示,如果被认为可链接的内容在某种程度上更复杂,则会派上用场。

总结一下,你不仅可以渲染链接。您需要向此链接添加内容。

答案 2 :(得分:0)

这将只渲染链接(没有图像,并且没有冗余地指定URL两次):

<%= link_to( nil, user_property_image_path(user,
                                           :id => property.images[0],
                                           :property_id => property)) -%>

(您可以传递nil作为第一个参数,它只会链接生成的URL。