1

レポートをレンダリングするためにいくつかのコントローラーを実行していますが、ここに問題があります。

ユーザーは、ダウンロード形式とレポートの日付を変更できるフォームでページを開きます。

ダウンロード形式は、選択した入力を介して設定されます。

ユーザーがボタンを押したときに、選択した形式に応じて応答したい。

問題は、URLを介して指定されていることです。したがって、次のようなことをしようとしています:

case format
when "xlsx" then format.xlsx{...}
when "html" then format.html{...}
...
end

Railsまたはブラウザ(よくわかりません)がhtml応答を期待しているため、機能しません。

私は2つのオプションについて考えました:

  1. onsubmitアプリケーションがjavascriptにさらに依存するようにフォームのURLを変更します。または。

  2. redirect_to url + ".#{params[:download_format]}"

2番目の方法は私にはよく見えますが:report_date、URLでを渡す必要があり、それを行う方法が見つかりません。

私はこれを試しました:

url = my_custom_url_path
redirect_to url + ".#{params[:download_format]}", :date_format => params[:date_format]

しかし、それは機能していません。

4

1 に答える 1

1

形式:

<%= f.select :download_format, { "xlsx" => "xlsx, "Online" => "html" } %>

コントローラーで:

def action
    if download_format = params[:download_format].delete
        redirect_to my_action_path(options.merge( :format => download_format ) ) and return
    end
    # do some logic here
    respond_to do |format|
        format.xlsx{...}
        format.html{...}
    end
end
于 2012-11-02T13:05:57.227 に答える