0

コントローラー関数でリンクを介して値を渡す方法。
ルートがそれを収集してコントローラーに送信するように、リンクで以下の rc 値を渡したいです。私はレールの初心者です。誰でも問題を解決するのを手伝ってください。

jQuery関数を介してテキストボックスから値を収集する私のhtml.erb 。

        <script type="text/javascript">
        var rc=jQuery("#commonid").val();
        </script>

        <div ><%=link_to "Alert By Region",alerts/filter_alert %></div>

私のルート.rb

リンクに一致し、コントローラーに送信するファイル

match 'alerts/filter_alert', :controller => 'alerts', :action => 'filter_alert'

私のコントローラー

          def filter_alert(x)
            @message=x
            @title = @title + ' - Alerts'
            render :site_alerts
          end
4

1 に答える 1

1

Javascript のものは Javascript に属します。訪問者がこのリンクをクリックしたときに、この値を動的に操作する必要があります。

Rails のコントローラー側では、メソッドをハードコーディングすることはできません。入力が何であるかがわからないため、クエリ文字列からパラメーターを使用する必要があります。

# Views
link_to 'Alert By Region', 'alerts/filter_alert', id: 'alert-link'

# Javascript   
$('#alert-link').on('click', function() {
   var rc = $("#commonid").val();
   if rc {
     this.attr['href'] += '?rc='+ encodeURI(rc);
     return true;
   } else {
     alert 'input is blank!';
     return false;
   }
});

# Controller
def filter_alert
  rc = params[:rc]
  # Then process based on this
end
于 2013-10-11T08:33:22.487 に答える