ruby-on-rails - 在 Ruby on Rails 的 link_to 中将 option_for_select 值作为参数传递
问题描述
<%= form_tag form_submit_path do |f| %>
<%= select_tag(:report_id, options_for_select(
[["Select Report Type", 0],
["Report 1", 1],
["Report 1", 1],
]), id: "report_selection")) %>
<%= link_to 'Generate Report',
NOT_form_submit_path,
report_id: report_selection,
id: 'generate_report_link',
class: 'btn btn-small btn-primary',
remote: true%>
如上所示,我在表单中有一个下拉菜单。我也有一个link_to
如上所示的,它不调用表单提交路径,而是使用不同的路径。现在,我想将下拉选择值作为参数(名为report_id
)传递给我的 link_to。我不知道该怎么做。
我尝试使用report_id: report_selection
如上所示,report_id: report_id
但它们都没有传递给我的控制器(在任何一种情况下,值在我的控制器中都显示为 nil)。
如何在我的 link_to 调用中传递参数?
解决方案
请按照注释行中的说明进行操作,这可以通过更短的代码行来完成,但我只是一步一步地解释它。
<script type="text/javascript">
//$('#report_selection').change(function(){
$('#report_selection').on('change', function(){
// get selected value from report_id options
var selected_val = $(this).val();
// get current path of link
var link_url = $('#generate_report_link')[0].pathname
// append selected value in link path and define it as new link
var new_link_url = link_url + "?report_id=" + selected_val;
// set new path or link
$('#generate_report_link').attr('href', new_link_url);
})
</script>
将链接更改为-
<%= link_to 'Generate Report',
NOT_form_submit_path,
id: 'generate_report_link',
class: 'btn btn-small btn-primary',
remote: true%>
推荐阅读
- angular - 为 Angular 配置 Jest
- c# - 检测对话是传入还是传出
- scala - 使用 API 从 Play Framework 控制器终止/停止/终止 Spark 作业的更好方法?
- css - 窄视口时将第二列放在顶部
- java - 为什么我会收到此错误:数据结构(数组)?
- rest - Delphi REST - 我如何知道何时检索到所有数据?
- dotnetnuke - DNN SPA 模块中的路由未按预期工作
- ruby - 如何在 Ruby 中验证 oauth、Magento 2.0 SOAP
- android - Admob 激励视频广告未填充
- angular - 角度日期管道自定义输出