[前][次][番号順一覧][スレッド一覧]

rails:1112

From: yosuke@j...
Date: Sat, 06 May 2006 02:19:25 +0900
Subject: [rails:1112] エラー処理について

皆様

suzukiと申します。
よろしくお願いします。

現在、controllerとして後段に添付するような
メソッドを書いていますが、エラー処理で悩んでいます。

先に出てくるエラー処理のためのbeginでは、
ファイルが読み込めない場合のエラー処理を
書いたつもりですが、不正なパラメータを読み込ませても
うまくindexにリダイレクトされません。

不正なパラメータを読み込ませた場合
  for images in f3
という行について、
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occured while evaluating nil.each
と怒られてしまいます。

2回目に出てくるディレクトリが存在するか否かの
エラー処理のためのbeginはうまく動いています。

railsというよりrubyの文法の問題なのかもしれませんが、
もし原因がわかる方いらっしゃいましたらご教示いただけると
助かります。

#そもそも、こういう風にだらだらとコードを書くのは
#Railsの思想に合ってない気もしています。


<ここからコード>
コード自体は、galleryというphpのアプリで管理している
画像を別のディレクトリにコピーして使うためのものとして
作成中です。

 def readdatfile
  baseDir = "/var/www/albums/"
  tempDir = "/var/tempPhoto/"

  targetDir = params[:targetDir]
  targetDirPath = baseDir + targetDir + "/"
  targetFilePath = targetDirPath + "photos.dat"

  begin
   f = open(targetFilePath)
  rescue
   logger.error("datファイルを読み込めません")
   flash[:notice] = 'datファイルを読み込めません。パラメータを確認してくださ
い'
   redirect_to(:action => 'index')
  else
   f2 = f.read
   f3 = PHP.unserialize(f2)
  end


  #ディレクトリの作成
  newDirPath = tempDir + targetDir
  begin
   FileUtils.mkdir(newDirPath)
  rescue
   @messageMkdir = newDirPath + "は存在しています"
  else
   @messageMkdir = newDirPath + "を作成しました"
  end

  #画像サイズの配列
  fileSizes = ['','.sized','.thumb']

  #f3のphotos.datをunserializeした配列をループ
  for images in f3
   #さらに画像サイズの配列でループ
   for fileSize in fileSizes
    cpImagePath = targetDirPath + images.image.name + fileSize +  ".jpg"
    FileUtils.cp(cpImagePath, newDirPath)
   end
  end
  #画像リストをViewに渡すための代入
  @outputF = PHP.unserialize(f2)
 end


--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

->    1112 2006-05-05 19:19 [yosuke@j...         ] エラー処理について                      
      1114 2006-05-06 05:21 ┗[babie7a0@y...       ]                                       
      1115 2006-05-06 06:08  ┗[yosuke@j...         ]