【问题标题】:Pass JS params to controller when using button_to使用 button_to 时将 JS 参数传递给控制器
【发布时间】:2016-10-19 10:43:03
【问题描述】:

也许没有表格就没有办法实现这一点,但我想知道。我通过按下我的应用程序管理部分中的按钮来从关注点调用 download_pdf 方法。这是工作代码:

<%= 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,以便将这些参数传递给 controller#method 以生成此日期范围的报告。我尝试了以下方法,但我不知道如何将这些 (start_date/end_date) 变量传递给控制器​​。这是非工作代码(请参阅 button_to 参数中的 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 方法?否则我可能会使用表格。 任何输入都表示赞赏。

【问题讨论】:

标签: javascript ruby-on-rails ruby-on-rails-4 datepicker erb


【解决方案1】:

Erb 是服务器端模板引擎,所以代码在服务器端执行,而 JS 代码在客户端,所以很遗憾没有直接的方法。 但是 我们可以做的是为远程选项设置为 true 的日期创建另一个表单(RAILS AJAX FORM),因此一旦提交,我们可以将 button_to 加载到视图中,现在我们将在 params 中有值。我猜应该工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    相关资源
    最近更新 更多