rails:1374
From: Kazuhiko <kazuhiko@f...>
Date: Fri, 21 Jul 2006 10:59:41 +0900
Subject: [rails:1374] Re: original_filenameでつまずいています
こんにちは、かずひこです。 At Fri, 21 Jul 2006 09:35:03 +0900, Hiroyuki Tsutsumi wrote: > 「はじめようRuby on Rails」で学習しているのですが、 ありがとうございます。:) > P117のoriginal_filenameでつまずいています。 > > ブラウザからアクセスすると、「undefined method `original_filename'」と > エラーになります。 > エラー個所は下記のところです。 > > def set_file_name > @file = params[:schedule][:file_name] > params[:schedule][:file_name] = @file.original_filename > end ファイルのアップロードのように multipart で POST すると、String ではなく StringIO(を拡張したもの)でクエリーがやってきて、そのインスタンスには original_filename というメソッドがあるはずです。 なので、app/views/schedules/new.rhtml や app/views/schedules/edit.rhtml の中で、start_form_tagメソッドの第二引数に「:multipart => true」の指定が 抜けているのではないかと想像します。 <%= start_form_tag(:action => 'create') %> ↑こうなっていたら、 <%= start_form_tag({:action => 'create'}, :multipart => true) %> ↑こう書き換えてください。 # 例しに、「:multipart => true」を削除してみたら、同じ例外になりました。 > Rubyのリファレンスマニュアルをみると、 > require "cgi" > とあるのですが、これって何処に書き込めば良いでしょうか? require "cgi" をする必要はなく、ActionPack の中で定義されています。私の環 境では /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.3/lib/action_controller/cgi_ext/cgi_methods.rb というファイルです。 -- かずひこ <http://wiki.fdiary.net/kazuhiko/> 「恋とハックはアジャイルが命!」 -- ML: rails@r... 使い方: http://QuickML.com/
@ 1373 2006-07-21 02:35 [h.tsutsumi@g... ] original_filenameでつまずいています -> 1374 2006-07-21 03:59 ┗[kazuhiko@f... ] @ 1375 2006-07-21 06:12 ┗[h.tsutsumi@g... ] 1376 2006-07-21 06:19 ┣[kazuhiko@f... ] 1377 2006-07-21 06:23 ┗[sakuro@e... ] @ 1379 2006-07-21 06:54 ┗[h.tsutsumi@g... ]