如何使用鼠标悬停在Rails中使用link_to制作image_tag超链接?

时间:2013-07-16 03:52:54

标签: mouseover ruby-on-rails-4 link-to

我将* image_tag *图像放在* link_to *元素中,以及尝试进行鼠标悬停图像交换。除了鼠标悬停之外,它都可以正常工作,而不是抓取替代图像。更一般地说,我是否正确地进行了超链接图像?对不起,Rails的新手。非常感谢!

<%= link_to (image_tag("#{product.prod_img}.jpg", alt: product.prod_name, class: 'img_prod_thumb', mouseover: "#{product.prod_img}_over.jpg")), "/products/#{product.id}" %>

1 个答案:

答案 0 :(得分:1)

指点:

  1. 不要动态地将img扩展名添加到您的代码中(特别是在视图中),除非有充分理由这样做(?)
  2. 您可以使用简单的product作为路径,而不是使用硬编码的网址
  3. 这就是我要做的事情:

    >>> move product image name construction to the model, helper, or decorator
    # model (for simplicity)
    
    def prod_img_full
      "#{prod_img}.jpg"
    end
    
    def prod_img_over
      "#{prod_img}_over.jpg"
    end
    
    >>> update and clean up link_to
    
    <%= link_to image_tag(product.prod_img_full, 
                alt: product.prod_name, 
                class: 'img_prod_thumb', 
                mouseover: product.prod_img_over), 
                product %>
    

    您可以轻松地将image_tag移动到装饰器,这将在您的视图中允许:

    <%= link_to product.hover_image, product %>