私はさまざまな形式のスプレッドシートを解析するアプリケーションを開発中です。それはCSVのために働いていましたが、私はそれをXLS、XLSX、ODS、Googleスプレッドシートに拡張しようとしています。レールのスイッチ/ ifステートメントでregexを使用してアップロードした後のファイル拡張子を特定する
アップロードしたファイルをファイル名に応じて正しく解析します。私はregexとswitchとif文でこれを達成しようとしましたが、それまでは動作しませんでした。 CSVファイルでさえもはや解析されないので、この問題は正規表現の条件内にあるようです。
def create
@deck = Deck.new
@deck.name = params[:uploadform][:name]
@deckmsg = ""
if @deck.save
@deckmsg='Deck was successfully created.'
else
respond_to do |format|
format.html { render action: "new", notice: 'Deck was not created.' }
end
end
if params[:uploadform][:file] =~ /.*(csv)$/
begin
@answers = Array.new
@questions = Array.new
CSV.parse(params[:uploadform][:file].read) do |row|
私はif文を取れば、それはとても問題があるにしておく必要があります動作します。ここでは
は私の現在のバージョンです。私は通常のアップロードフォームを使用しています。
まあ、これはあなたの問題を解決しましたか? [upvote /あなたの質問への回答を受け入れることを忘れないでください](http://meta.stackexchange.com/a/5235/158402)! –
うーん、いいえ、残念ながらそうではありません。私はファイル "cities.csv"でテストしていますが、あなたの改善された正規表現でさえも、まだ通っていません。 – Fabian
@FabianJahrちょうど何かを実現しました。私の更新された答えを見てください。 –