スポンサーサイト
2013.07.04 Thursday
一定期間更新がないため広告を表示しています
はじめてのRuby on Rails、トラブル記録
RailsでAmazonAPIを使ってみる(ruby-aaws)(2)
2009.10.20 Tuesday
AmazonAPIを使ってちょっとしたアプリを作ってみました。 内容としては、こんな感じ。 ・気になってるけどまだ〜な本・DVD・音楽を登録しておくアプリ ・アマゾンで本・DVD・音楽を検索 ・検索結果から該当のものを選んで登録 【1】SEARCH検索のコード。 ・コントローラー ほんとはコントローラーじゃないとこに出した方がいいのかもしれないけど、よくわからなかったのでコントローラーに書いちゃった def search items = amazon_search(params[:category],params[:key]) @items = items.item_search_response.items.item # 検索結果を配列として受け取った @res_count = items.item_search_response.items.total_results # 検索結果の件数 respond_to do |format| format.html # search.html.erb format.xml { render :xml => @items } end end def amazon_search(category, key) result = Amazon::AWS::Search::Request.new.search( Amazon::AWS::ItemSearch.new(category, {'Title'=>key}), Amazon::AWS::ResponseGroup.new("Medium") ) return result end ・ビュー 検索結果は10件まで表示できるっぽい。 画面はこんな感じ↓ なんかJUGEM、preタグでhtml直接表示できないっぽい 仕方ないのでhtmlで書いた部分は削った形で。 <% @items.each do |i| %> # 検索結果中の選んだデータをモデルに持っていく <% form_tag(:controller=>"kininarus", :action=>"register") do -%> <%= hidden_field(:amazon, :title, { :value=> i.item_attributes.title }) %> <%= hidden_field(:amazon, :category, { :value=> @category }) %> <%= hidden_field(:amazon, :item_id, { :value=> i.asin }) %> <%= submit_tag t('register'), :class=> 'middle' %> <% end -%> # イメージに詳細へのリンクを張る <% unless i.small_image==nil %> a href="<%= i.detail_page_url %>">" <%= image_tag(i.medium_image.url) %> /a # aタグね <% else %> <%= image_tag('no_image.png') %> <% end %> # タイトルに詳細へのリンクを張る a href="<%= i.detail_page_url %>"<%= i.item_attributes.title %> /a # ここも本来aタグ <%=h i.item_attributes.author %> <% end %> 【2】lookup検索から登録したデータの一覧を表示するとき、画像とかは直接データベースに保存しちゃいけないらしいので、 asinからlookupで画像を表示するようにしました。 ・ヘルパー ビューからメソッド呼び出すことってできるのかな?と思って調べてみた。 「ヘルパー」っていうのに作ればいいらしいと判明。 ということで、ヘルパーメソッドを作ってみました。 module GetImageHelper def get_medium_image(asin) item = lookup(asin) unless item.medium_image.url==nil image_url = item.medium_image.url.to_s else image_url = "no image" end return image_url end def get_large_image(asin) item = lookup(asin) unless item.large_image.url==nil image_url = item.large_image.url.to_s else image_url = "no image" end return image_url end def get_detail_url(asin) item = lookup(asin) unless item.detail_page_url==nil detail_url = item.detail_page_url.to_s end return detail_url end def lookup(asin) result = Amazon::AWS::Search::Request.new.search( Amazon::AWS::ItemLookup.new('ASIN', 'ItemId'=>asin), Amazon::AWS::ResponseGroup.new('Medium') ) item = result.item_lookup_response.items.item return item end end ・ビュー 実際の画面↓ get_medium_imageでイメージURLを引っ張ってきた。 <% @kininarus.each do |kininaru| %>
<% unless kininaru.item_id=="" %> <%= link_to(image_tag(get_medium_image(kininaru.item_id)), kininaru) %> <% else %> <%= image_tag('no_image.png') %> <% end %> <%= link_to kininaru.title, kininaru %> <% end %> RailsでAmazonAPIを使ってみる(ruby-aaws)(1)
2009.10.14 Wednesday
しばらくブログ書いてなかったですが、さぼっていたわけではありませんw 一つ自力でプロジェクトを作ってみようと思ってやってました。 そんで、何かAPIを使ってみたかったので、AmazonAPIを作って一つ作ってみました。 参考書ベースじゃないプロジェクトは初だったので、大変だったよ……! 機能的にはこんな感じ。
RailsでAmazon使うのはamazon-ecsというプラグインが有名だったみたいなんだけど、 09年8月15日からAmazonAPIが認証用のキーがないと使えなくなっちゃって、 ruby-aawsという別のプラグインが認証に対応しているらしかったのでそっちを使うことにしました。 具体的な内容はまた次回。 なんかいろいろあったので、インストールとかについては今回は書かないつもり。。。 【とりあえず先に参考サイト】 ruby-aws(ruby-aawsの旧名)のドキュメントhttp://www.caliban.org/ruby/ruby-aws/ RailsでAmazonの商品を, 署名認証に対応した上で扱う http://d.hatena.ne.jp/takkkun/20090617/1245232547 Amazon Web サービス入門(Product Advertising API)http://www.ajaxtower.jp/ecs/ |
Rails3レシピブック 190の技
ついにRails3対応版が出ました!!
WEB+DB PRESS Vol.58
Rails2系から3への移行時に知りたいことがひとまとまりになっててよかった!色々ググるよりこれを読む方が早い。
Rubyレシピブック 第3版 303の技
Rubyやるならこのリファレンスは必要。
Search this site
|