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

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...     ]