2010-06-06 71 views
1

我有一個非常令人沮喪的時間獲取一些圖像上傳。他們顯然是作爲rack/multipart上傳的,但是我對我的params hash進行迭代的方式肯定會導致問題。我真的可以使用一些幫助,所以我可以停止拉出我的頭髮。在參數哈希上迭代

所以我有params散列,看起來像這樣:

Parameters: {"commit"=>"Submit", "sighting_report"=>[{"number_seen"=>"1", "picture"=>#<File:/var/folders/IX/IXXrbzpCHkq68OuyY-yoI++++TI/-Tmp-/RackMultipart.85991.5>, "species_id"=>"2"}], "authenticity_token"=>"u0eN5MAfvGWtfEzrqBt4qfrL54VJ9SGX0jFLZCJ8iRM=", "sighting"=>{"sighting_date(2i)"=>"6", "name"=>"", "sighting_date(3i)"=>"5", "county"=>"0", "notes"=>"", "location"=>"", "sighting_date(1i)"=>"2010", "email"=>""}}

我的形式可以在每個瞄準報告多張目擊報告。這裏是我的控制器代碼:

def create_multiple 
    @report = Report.new 
    @report.name = params[:sighting]["name"] 
    @report.sighting_date = Date.civil(params[:sighting][:"sighting_date(1i)"].to_i, params[:sighting][:"sighting_date(2i)"].to_i, params[:sighting][:"sighting_date(3i)"].to_i) 
    @report.county_id = params[:sighting][:county] 
    @report.location = params[:sighting][:location] 
    @report.notes = params[:sighting][:notes] 
    @report.email = params[:sighting][:email] 
    @report.save! 
    @report.reload 
    for sr in params[:sighting_report] do 
     sighting = SightingReport.new 
     sighting.report_id = @report.id 
     sighting.species_id = sr[:species_id] 
     sighting.number_seen = sr[:number_seen] 
     sighting.save 
     if sr[:picture] 
      sighting.reload 
      for pic in sr[:picture] do 
       p = SpeciesPic.new 
       p.uploaded_picture = pic 
       p.species_id = sighting.species_id 
       p.report_id = @report.id 
       p.save! 
      end 
     end 
    end 
    redirect_to :action => 'new_multiple' 
end 

我似乎無法訪問圖片數據本身,但不斷訪問一些字符串。這不是文件名,但有一些奇怪的事情與逃脫的字符。我能做些什麼來訪問實際的數據?

+0

那麼你有什麼問題? – 2010-06-06 10:27:33

+0

抱歉沒有真正說明我的問題!我已經在帖子底部陳述了我的問題。 – 2010-06-07 05:46:22

回答