受け取ったファイルデータを直接保存する
Rails本(という名称はそろそろ使えなくなるらしい)のP362でファイルをアップロードする方法が記されているが、RDBではなく、受け取ったファイルを直接Webサーバ上に保存する。
def picture=(picture_field) @name = base_part_of(picture_field.original_filename) @content_type = picture_field.content_type.chomp #拡張子は適切につける open( "image/test2.gif" , "wb" ) { |fh| fh.write picture_field.read } end def base_part_of(file_name) name = File.basename(file_name) name.gsub(/[^\w._-]/, '') end
openのオプションが"w"だと、環境によっては上手く動かない(と思われる)