おおいしつかさ


旅行とバイクとドライブと料理と宇宙が好き。
Ubie Discoveryのプログラマ。
Share:  このエントリーをはてなブックマークに追加

Try and say my name!

 藤堂さんからすごいプレゼントがやってきた!
Medium
 ケロロだ。
Medium
 うおー、ジャキ様だ。すごい。誕生日プレゼントにこんなのもらったのは初めてです。なにより、ネタのためにプレゼントをする藤堂さんがすごい。ありがとうございます。大事にお家にいるときにだけ着させていただきます。

  2007年02月10日の日記でkaeruspoonのAmazon機能のソースをちょっとのせていたけど、オーバライドを使うのが自然だと思ったので以下のようにしてみました。

class AmazonList < ActiveRecord::Base  
  include REXML  
  has_and_belongs_to_many :diaries  

  ASSOCIATE_TAG = 'アソシエートID'  
  AWS_ACCESS_KEY_ID = 'ECS用ID'  
  SEARCH_ELEMENT = 'ItemLookupResponse/Items/Item/'  

  def self.find_by_asin(asin)  
    Net::HTTP.version_1_2  

    item = super(asin)  
    if (item == nil) || (item.updated_on.to_time.since(7.days) < Time.now)  
      amazon_list = Hash.new  
      Net::HTTP::start('webservices.amazon.co.jp') do |http|  
      ……以下略  

 それからかえる記法のパーサに関しては、Windowsぶっ壊れ事件のごたごたでまだ手を付けていません。一時はコントローラにパーサの処理を持ってこようとも思ったのだけど(解析しながらAmazonのデータを取得する必要があるから)、habtmを使って日記とAmazon商品の間にリレーションシップをはりました。でもこれって、ヘルパー上のパーサで実際にAmazonデータを取得するときにDBにアクセスする気がする。コントローラ上でfindしたときはリレーションシップ先のレコードまで読まないよね?(違うかもしれないけど)
 Viewの処理中にDBにアクセスしていると思うとちょっと気持ち悪い気がするけど、ここまで気にしなくてもいいのかな。