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.

Page History
  • V45: Mark Young [over 4 years ago]
  • V44: Mark Young [over 4 years ago]
  • V34: ChangJoo Park [almost 5 years ago]
  • V33: ChangJoo Park [almost 5 years ago]
  • V28: Pablo Rodriguez [over 5 years ago]
  • V26: Colm Morgan [over 5 years ago]
  • V25: Colm Morgan [over 5 years ago]
  • V24: Kevin Young [over 5 years ago]
  • V23: Aaron Burke [over 5 years ago]
  • V22: Aaron Burke [over 5 years ago]