3

終了日と開始日 (日付範囲) の 2 つのフィールドがあり、それらをコントローラーに渡してこのページをリロードする必要があります。

ビューからの私のコードは次のとおりです。

    <%= form_tag(:controller => "financial_reports", :action => 'index', :method => 'post') do%>//maybe this line should be edited
   <%= datepicker_input "report","start_date", :dateFormat => "dd/mm/yy" %>
  <%= datepicker_input "report", "end_date", :dateFormat => "dd/mm/yy"%>
  <%end%>

および生成された HTML() :

  <form accept-charset="UTF-8" action="/financial_reports?method=post" method="post"...>
  <input id="report_start_date" name="report[start_date]" size="30" type="text" class="hasDatepicker"><script type="text/javascript">
<input id="report_end_date" name="report[end_date]" size="30" type="text" class="hasDatepicker"
    <input class="btn wide" id="btn-report" name="commit" type="submit" value="Run Report">
  </form>

次のような日付ピッカー値を取得できますか:

      $('#datepicker').datepicker({
    onSelect: function(dateText, inst) {
  $("input[name='report[start_date]']").val(dateText);
    }
});

そして、それらをコントローラーに渡してこのページをリロードする必要があります。

ここで、JQUERY 値を渡す必要があります

    @financial_reports = current_user.financial_reports.where(:created_at => start_date.to_date..end_date.to_date)

または、別のアクションまたはメソッドを追加する必要がありますか? 何を提案できますか?

4

2 に答える 2

5

私の意見では、AJAX を使用し、ページをリロードしないことが最善の策です。一部のデータを更新しようとしているだけで、それを行うために完全なページ更新を実行する理由はありません。私はRoRの愛好家ではありませんが、次のようにしてコントローラーにデータを送信できるようです->

$.ajax({ 
  type: 'POST', 
  url: 'path/to/controller', 
  data: {'start_date' : $("input[name='report[start_date]']").val(), 
        'end_date' : $("input[name='report[end_date]']").val() }, 
  success: function(data){
    //data is whatever you RETURN from your controller. 
    //an array, string, object...something 
  } 
});`  

RoRコントローラーでは、次のようにしてパラメーターを取得します...

var the_start = params[:start_date],
    the_end = params[:end_date]

コントローラーにデータを取得したので、メソッドをそれに適用できます。次に、データを送り返す準備ができたらreturn, print, whatever、ページにデータを送信します。

また、RoR はデフォルトで (コントローラーにアクセスするとき)、テンプレートをビューに出力することを想定しています。データを更新したいだけなので、-> のようなものを使用してそのデフォルト アクションを停止する必要があります。

render :layout => false

これがお役に立てば幸いです。私は RoR の専門家ではありませんが、これは私が何度か手を出したときに使用した方法です。

幸運を!

于 2012-08-06T14:51:33.470 に答える
0

Rails 3 には、必要なことを正確に行うためのヘルパーが用意されています。これらは、リモート フォームおよびリンクと呼ばれます。

このブログ投稿は、彼らが何をし、どのように機能するかを説明する素晴らしい仕事をしています.

于 2012-08-06T14:54:19.040 に答える