2017-12-29 10 views
0

これは数日間検索していて、解決策を見つけることができませんでした。私は複数のファイルを送信し、ローカルに(または多分将来はs3バケツに)保存しようとしており、dbにも保存しています。Ruby on railフォームが複数のファイルで動作しない

ファイル自体ではなく文字列が表示されています。

私はレール5.1を使用し、ここで3.2

ルビーだが、私のコードです:

コントローラー:

all_files = params[:files] 
    all_files.each do |fil| 
     File.open(Rails.root.join('public', 'uploads', all_files.original_filename), 'wb') do |filea| 
      filea.write(all_files.read) 
     end 
    end 

フォーム

<%= form_for @docs, :url => docs_create_path, :html => { :multipart => true } do |f| %> 
<%= f.file_field :files, :multiple => 'multiple', :name => 'files[]'%> 
<%= f.submit("Upload file") %> <% end %> 

一般的なエラー:未定義のメソッド `original_filename 'for #Array:0x0000000006aeb338>

+0

ようこそでall_files.orginalを置き換えるがあります!追加の情報を追加するために質問を編集することができます。 [mcve]を含めると、問題を理解し、答えが正しいことを確認するのに役立ちます。したがって、あなたの助けを得る機会が増えます。 – akraf

+0

@Valterはあなたを助けました。 – Gabbar

答えて

1

小さなミスが、ここでスタックオーバーフローにfile.orginal

all_files = params[:files] 
all_files.each do |file| 
    File.open(Rails.root.join('public', 'uploads', file.original_filename), 'wb') do |temp_file| 
     temp_file.write(temp_file.read) 
    end 
end 
+0

今これを取得しています:#の未定義メソッド 'read ' –

+0

all_files.readをfile.readに変更するだけです ありがとうございました! –

+0

私は答えを変えました。それがあなたを助け、正しい私に感謝したいと願っています。 – Gabbar

関連する問題