<%= 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
,如上所示,它不调用表单提交路径,而是调用其他路径。现在,我想在我的link_to中将下拉选择值作为参数(名为report_id
)传递。不知道该怎么做。我尝试如上所述使用report_id: report_selection
和report_id: report_id
,但它们都没有传递给我的控制器(无论哪种情况,该值在我的控制器中都为nil)。
如何在我的link_to调用中传递参数?请帮助!
答案 0 :(得分:1)
请按照注释行中的说明进行操作,这可以用更多的短代码行来完成,但我只是一步一步地进行了解释。
<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%>