2016-07-03 5 views
0

ファイルをアップロードしてレールに解析しようとしています。私はまた、ファイルの内容をソート可能なテーブルに入れたいと思っています。私はhttp://railscasts.com/episodes/396-importing-csv-and-excel?autoplay=trueに続き、それを通りました。Rails - Javascript/HTMLによるファイルアップロード

マイビューファイル - index.html.erbはこのようになります -

<%= form_tag import_users_path, multipart: true do %> 
Import a file 
<%= file_field_tag :file %> 
<%= submit_tag "Submit" %> 
<% end %> 

* _controllers.rbは、今私が使用してファイルのアップロードボタンにスタイルを追加するこの

class UsersController < ApplicationController 
def index 
    @users = User.order(params[:sort]) 
end 

def show 
    @user = User.find(params[:id]) 
end 

def import 
    User.import(params[:file]) 
    redirect_to action: 'index' 
end 
end 

のように見えますJavascript/Bootstrap。私は、次のようにindex.html.erbを変更 - 。

<%= form_tag import_users_path, multipart: true do %> 
<span class="fileUpload btn btn-primary"> Upload 
    <input id="uploadBtn" type="file" class="upload" /> 
</span> 
<%= submit_tag "Submit"> 
<% end %> 

となりまし資産/ JavaScriptの/ * jsがこのようになります -

document.getElementById("uploadBtn").onchange = function() { 
document.getElementById("uploadFile").value = this.value; 
}; 

アップロードされたファイルがされていませんので、これが動作しません':file'には何も割り当てられていません。

CSSとJavaScriptのスタイリングを 'file_field_tag'に適用するにはどうすればよいですか?

答えて

1
  1. あなたはタグにあなたのようなあなたのフォームヘルパーのために使用することができ、同じようにCSSスタイルを追加することができるはずです。

    file_field_tag :file, class: 'whatever-class'

  2. あなたの手で書かれたファイルの入力を使用している間、

    <input id="uploadBtn" type="file" class="upload" name='file' />

  3. :私はあなたのフィールドに名前を付けていなかったので、あなたがあなたのコントローラーの値を取得していない、修正は簡単なようであるべきだと思います
  4. あなたはAJAX/JSを介してファイルをアップロードすることができますが、私はあなたがFormDataとそれ以外のものを使用してカスタムフォームのシリアル化を行う必要があると思うので、そのプロセスは単純ではないと思います。私はまあまあだとは確信していない!

+0

私は試してみましたが、うまくいきませんでした。それは私のCSSスタイルシートを選んでいない。私のCSSファイルをインクルードするときにエラーが出ることはありませんが、.css内で定義されたCSSスタイリングは適用されません – Maria

関連する問題