2011-10-26 13 views
0

私はRuby on Railsで実装していますが、何か簡単にしたいだけです.CSSファイルを読み込んでから、出力をビューに表示したいだけです。私は、私には良いと思われるいくつかのコードを持っている、しかし、私は常にerrrorを取得する:これは私のコントローラである文字列 に一時ファイルを変換することはできません。Ruby on railsでcsv-fileを読み込んで表示しても動作しないのですか?

def match 
file = params[:file] 

@original_filename = file.original_filename 
tmpfile = Tempfile.new("redmine_project_importer") 
if tmpfile 
    tmpfile.write(file.read) 
    tmpfile.close 
    tmpfilename = File.basename(tmpfile.path) 
     if !$tmpfiles 
     $tmpfiles = Hash.new 
     end 
     $tmpfiles[tmpfilename] = tmpfile 
    else 
     flash[:error] = "Cannot save import file." 
     return 
    end 
session[:importer_tmpfile] = tmpfilename 
sample_count = 5 
i = 0 
@samples = [] 
FasterCSV.open(file, "r") do |row|  
     @samples[i] = row 
     i += 1 
     if i > sample_count 
      break 
     end 
    end 

と私の見解はただである:

<% form_tag({:action => 'result'}, {:multipart => true}) do %> 
<table> 

<% @samples.each do |sample| %> 
    <tr> 
    <td>sample</td>  
    </tr> 
<% end %> 
</table> 

私を助けることができる人? Greetz

答えて

0

私はFasterCSVで働いていないが、私はあなたがスプレッドシートに表情を与えるべきだと思う - http://spreadsheet.ch/

あなたは、単にこのようとしてcsvファイルを読むことができるようになります。

book = Spreadsheet.open path_to_file 
sheet = book.worksheet 0 

その後、行を反復処理し、あなたが好きなアクションを実行できます。

sheet.each do |row| 
    #code 
end 
1

1)FasterCSV.open()がString Fを必要としilename、それにFileオブジェクトを渡しています。

2)行を繰り返す場合は、FasterCSV.foreach(filename)です。アップロードしたファイルのパラメータを持っている場合や

しかし、あなたの場合はFasterCSV.open().each、あなたは私がこれをやった

+0

FasterCSV.new(params[:file]).each do |line| 

は、エトセトラ、私はもうエラーを持っていないとの方がいいでしょう。しかし、私はまだ出力がありません。ちょうど@samplesが空であるのと同じように、これはどうですか? – Ruben

関連する問題