small medium large xlarge


Andrew says:

I changed this line:

<%= image_tag(product.image_url) %>

... to …

<%= link_to(image_tag(product.image_url), 
            line_items_path(:product_id => product), 
            html_options = {:method => :post}) %>

Arun says:

The above works fine, but when I click the image, it directs to line_items show action, instead of cart(http://localhost:3000/line_items?product_id=3). Andrew, did you face this? How to direct it to cart’s show action?

Katja says:

Andrew, this does not work for me

<%= link_to(image_tag(product.image_url), 
            line_items_path(:product_id => product), 
            html_options = {:method => :post}) %>

Had to change the html_options = {:method => :post} into :method => :post and everything was fine.

Arun says:

I did it. Instead of using HTML call to post, I invoked the create method through rails. Works fine.

<%= link_to(image_tag(product.image_url), line_items_path(:product_id =>product), :method=> "create") %>

Martin says:

But finally “user friendly way” is:

<%= link_to image_tag(product.image_url, {:border => "0", :title => "Push it into cart!"}),
                      line_items_path(:product_id => product), {:method => :post} %>

Mike says:

Improving upon what Martin posted, I wanted to store the image border style in my style sheet, so I specified a CSS class using :class

<%= image_tag(product.image_url, :class => "image_link")

And added this to my CSS file:

.image_link {
    border: 0;

Mo says:

Not sure why, but with the solutions above, right clicking the image actually invokes the click-action (creating an item_line) and not only the popup menu from the browser (using Firefox). It’s because of the javascript, but that’s beyond my knowledge :-( ... any ideas? Thx!

Bruce says:

@Mo the issue seems to be a bug in Firefox. Try in Safari and you see the expected behaviour.

Jinlin says:

Could anyone explain to me why this works: line_items_path(:product_id => product), :method =>:post

but this won’t work? :controller => ‘line_items’, :method =>:post, :acton=>‘create’

Aaron says:

Updated syntax for Ruby:
<%= link_to(image_tag(product.image_url), line_items_path(product: product), method: :post) %>

Kevin says:

I am using the following:

<%= link_to image_tag(product.image_url), line_items_path(:product_id => product), :method => :post %>

Like Arun above, this takes me to line_items/show and not the cart. I also tried Arun’s suggestion of invoking the create action, but that did not work either. Can anyone tell me if there is something I am missing? Apparently this activity has been removed from the newest version of the book. I heard there are some javascript configuration issues, but I am not sure. If anyone could help it would be greatly appreciated.

Colm says:


<%= link_to image_tag(product.image_url), :action => 'add_to_cart', :id => product, :method => 'post' %>

EDIT: This solution is good for the 3rd Edition of the book, but not the 4th as :action => 'add_to_cart' does no seem to be used any longer.

Hi! I’ve tried with all the solutions shown above but none of them worked, and the only thing I get by clicking on the image is a “new line item” instead of “create”. Any ideas? Thanks

derfarg says:

its works but i use javascript for that.

<form name="<%= %>" 
        method='post' action="<%= line_items_path(:product_id => product) %>">

            <%= link_to image_tag(product.image_url), 
                                    :method => :post %>
Page History
  • V45: Mark Young [over 5 years ago]
  • V44: Mark Young [over 5 years ago]
  • V34: ChangJoo Park [over 5 years ago]
  • V33: ChangJoo Park [over 5 years ago]
  • V28: Pablo Rodriguez [about 6 years ago]
  • V26: Colm Morgan [about 6 years ago]
  • V25: Colm Morgan [about 6 years ago]
  • V24: Kevin Young [over 6 years ago]
  • V23: Aaron Burke [over 6 years ago]
  • V22: Aaron Burke [over 6 years ago]