Amazon API - How to display in view

I am new to Ruby and am pretty sure that this has a very easy
solution. I am querying an Amazon wishlist but am not sure how to
display all of the results in the view. Following is the code with
comments. Any help would be appreciated.

— amazon_controller.rb —

Taken from

http://www.roryhansen.ca/2005/07/18/amazon-web-services-on-rails/

require ‘amazon/search’

class AmazonController < ApplicationController
include Amazon::Search

ASSOCIATES_ID = “INSERTIDHERE”
DEV_TOKEN = “INSERTDEVTOKENHERE”

def wishlist
# Query Amazon
request = Request.new(DEV_TOKEN, ASSOCIATES_ID, ‘us’, false)
@response = request.wishlist_search(‘170YZ2UOWUXV6’, weight=HEAVY)
do |product|

  @product_name = product.product_name
  @list_price = product.list_price
  @our_price = product.our_price
  @image_url = product.image_url_medium
  @url = product.url
  @quantitydesired = product.quantitydesired


end

end

end

— wishlist.rhtml —

<%= @product_name %> Falling Up
List Price: <%= @list_price %>
Our Price: <%= @our_price %>

<% for item in @response %>
Array Item: <%= item %>

<% end %>

Hi,

On Dec 4, 2007 6:51 PM, Kevin D [email protected] wrote:

require ‘amazon/search’
class AmazonController < ApplicationController
include Amazon::Search

ASSOCIATES_ID = “INSERTIDHERE”
DEV_TOKEN = “INSERTDEVTOKENHERE”

def wishlist
# Query Amazon
request = Request.new(DEV_TOKEN, ASSOCIATES_ID, ‘us’, false)
@products = request.wishlist_search(‘170YZ2UOWUXV6’, weight=HEAVY)
end
end

<%= @product_name %> Falling Up
List Price: <%= @list_price %>
Our Price: <%= @our_price %>

<% @products.each do |product| %>
<%= product.product_name %> Falling Up

List Price: <%= product.list_price %>
Our Price: <%= product.our_price %>

<% end %>

You should investigate the link_to and image_tag helpers to help clean
up
your views. After you’re comfortable with that the next level would be
extracting the contents of the loop into a partial.

HTH,
Michael G.

Hi Mike,

Thanks for the reply. Still getting an error as follows:
NoMethodError in Amazon#wishlist

Showing app/views/amazon/wishlist.rhtml where line #2 raised:

undefined method `url’ for #Amazon::Search::Response:0x25f3f64
Extracted source (around line #2):

1: <% @products.each do |product| %>
2: <%= product.product_name %>
3:
4: List Price: <%= product.list_price %>
5: Our Price: <%= product.our_price %>
RAILS_ROOT: ./script/…/config/…

Again here are the files:
amazon_controller.rb

Taken from

http://www.roryhansen.ca/2005/07/18/amazon-web-services-on-rails/

require ‘amazon/search’
class AmazonController < ApplicationController
include Amazon::Search
ASSOCIATES_ID = “IDHERE”
DEV_TOKEN = “TOKENHERE”
def wishlist
# Query Amazon
request = Request.new(DEV_TOKEN, ASSOCIATES_ID, ‘us’, false)
@products = request.wishlist_search(‘170YZ2UOWUXV6’,
weight=HEAVY)
end
end

wishlist.rhtml
<% @products.each do |product| %>
<%= product.product_name %> <img src="<
%=product.image_url_medium %>" class="" border=“0” alt=“Falling Up” /

List Price: <%= product.list_price %> Our Price: <%= product.our_price %> <% end %>

Kevin,

On Dec 6, 2007 2:36 AM, Kevin D [email protected] wrote:

Hi Mike,

Thanks for the reply. Still getting an error as follows:
NoMethodError in Amazon#wishlist

Showing app/views/amazon/wishlist.rhtml where line #2 raised:

undefined method `url’ for #Amazon::Search::Response:0x25f3f64
Extracted source (around line #2):

I am not at all familiar with the Amazon search library. However, it
appears that your product object does not have a method call url.

Change this line in your controller and you should be good to go.

@products = request.wishlist_search(‘170YZ2UOWUXV6’,
weight=HEAVY).products

If you need more reference information check out:
http://www.caliban.org/ruby/ruby-amazon/classes/Amazon.html

Many thanks Mike. That .product in the controller did it.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs