2016-10-19 11 views
0

フォームなしでこれを達成する方法がないかもしれないが、私は疑問に思っている。アプリの管理部分のボタンを押して、懸念からdownload_pdfメソッドを呼び出しています。ここで動作するコードは次のとおりです。button_toを使用してJSパラメータをコントローラに渡す

<%= button_to t('.download_pdf', :default => "Download PDF BTC Statement"), download_pdf_admin_user_path(@user), 
           :action => :download_pdf, 
           :class => "btn btn-success btn-xs" %> 

今、私はこれらのパラメータはレポートを生成するために、#メソッドをコントローラに渡されるので、サイトの管理者は、START_DATEとEND_DATEの両方を選択できるようにしたいのですが認めることができますこの日付範囲では私は以下を試みたが、私はこれらの(start_date/end_date)変数をコントローラに渡す方法を手がかりにしていない。ここでは非稼働コードは(button_to paramsはでCAPSを参照)である。

<input type="text" placeholder="start date" id="start_date" class='datepicker'> 
<input type="text" placeholder="end date" id="end_date" class='datepicker'> 

<script type="text/javascript"> 
    $(document).ready(function(){ 
    $('#start_date').datepicker(); 
    $('#end_date').datepicker(); 
    START_PLZ = $('#start_date').datepicker().val(); 
    END_PLZ = $('#end_date').datepicker().val(); 
    }); 
</script> 

<%= button_to t('.download_pdf', :default => "Download PDF BTC Statement"), download_pdf_admin_user_path(@user), 
           :action => :download_pdf, 
           :params => { start_date: START_PLZ, end_date: END_PLZ }, 
           :class => "btn btn-success btn-xs" %> 

は、私はそれらのJS変数を使用して、私はボタンを押したときに、私のgenerate_pdfメソッドに渡すことができます方法はありますか?それ以外の場合は、フォームを使用する可能性があります。 すべての入力が正しく評価されています。

+1

'button_to'の中に' remote:true'オプションを付けて適切なアクションを追加する必要があると思います。http://apidock.com/rails/ActionView/Helpers/UrlHelper/button_to – uzaif

答えて

1

Erbはサーバーサイドのテンプレートエンジンなので、コードはサーバー側で実行されますが、JSコードはクライアント側にあるため、残念ながら直接的な方法はありません。 しかし リモートオプションがtrue(RAILS AJAX FORM)に設定されている日付用の別のフォームを作成すると、送信されたbutton_toが表示され、今度はparamsに値が設定されます。私は推測する必要があります。

関連する問題