picasa on rails で,ハマってた所が四苦八苦しながら(笑)なんとかできた事を,つらつらとメモっておくことにする.

以下picasa on railsのREADMEのアルバムにファイルをアップロードする為のサンプルコード


####################################################
fileName = "C:/Documents and Settings/All Users/Documents/My Pictures/Sample Pictures/Blue hills.jpg"
image_data = open(fileName, "rb").read
photo = picasa.post_photo(image_data, :album => "AlbumFromRuby",
:summary => "Upload2 from ruby api", :title => "From Ruby 2",
:local_file_name => "Blue hills.jpg")
puts photo.inspect
####################################################


railsでupするとき,fileNameの所で躓いていた・・・
以下私のnew.erb
####################################################
<% form_tag ({:controller => "uploads", :action => 'create'}, { :multipart => true }) do -%>
<p><b>album:</b><%= text_field_tag :album %></p>
<p><b>説明:</b><%= text_field_tag :summary %></p>
<p><b>title:</b><%= text_field_tag :title %></p>
<p><b>キーワード:</b><%= text_field_tag :keywords %></p>
<p><b>local-file-name:</b><%= text_field_tag :local_file_name %></p>
<p><b>upfile:</b><%= file_field_tag :file %></p>
<p><%= submit_tag '作成'%></p>
<% end -%>
####################################################
file_field_tagで,ファイルをアップロードすると,
p params[ :file ]で見てみると,#<File:/tmp/RackMultipart3070-1>と出てしまう(3070-1はその時により変わる).

controllerで初めはこんな感じかなーとやってみていた.
@fileName = params[:file].path
@image_data = open(@fileName, "rb").read
@photo = @picasa.post_photo(@image_data, :album => params[:album],
:summary => params[:summary], :title => params[:title],
:local_file_name => params[:local_file_name])
としていたが,

No such file or directory - 580.jpg と出て,ファイルへのフルパスが出ない!!と思っていた.
p File.dirname(params[ :file ].original_path)
とすると"/tmp/RackMultipart3070-1"
と出てしまう.

んー勉強不足の私にはどうしていいのか分からず,ググってみた.

どうやらRackMultipart3070-1はtempファイルということが分かり,以下のようにしてみた.

params[:file].open
@image_data = params[:file].read
@photo = @picasa.post_photo(@image_data, :album => params[:album],
:summary => params[:summary], :title => params[:title],
:local_file_name => params[:local_file_name])
params[:file].close

ご馳走さまです.

tempファイルの事とか全く分からなかったので,この部分だけで4日もかかりましたXD

あと,READMEではファイルのフルパスでuploadになってたので躓きましたが,その辺の視点を変えてみると
案外すんなりといくものですね.

↑出来たから言えることww


このアメーバブログは,アンドロイド端末で見ると非常に見やすいとの情報をいただきました.

実際に見てみると,無駄な広告が無くシンプルで,また,ソースコードがとても見やすかったです.

以上です....
最近ダンスやらなんやらで忙しく,更新できてませんでした.

少し前になりますが,Ruby会議に参加申し込みしました.

また,クックパッドの【Ruby Recipes and Japanese Cooking at COOKPAD】
に観覧としてですが,参加申し込みしました.

まだまだダンスや資格試験で忙しいケド,頑張るぞー!!




最近感じた事・・・

Google Maps API

使いこなしてみたいw