javascript - 使用collection_select和javascript重定向 Rails

  显示原文与译文双语对照的内容
0 0

当点击发生时,我有一个collection_select来触发一些JS来设置我的URL 。 这是密码。

application.js

$(document).ready(function(){
 $("#org_id").on("change", function(){
 val = $(this).val();
 window.location = '/sessions?org_id='+ val;
 });
});

视图

<div id="org-select">
 <%= collection_select :org, :id, Org.all, :id, :name %>
</div>

呈现的HTML

<div id="org-select">
 <select id="org_id" name="org[id]"><option value="1">bustas</option>
<option value="2">wintas</option></select>

这一切都是给我一个像/会话这样的urlorg_id=2.?

页面中的选择框默认为第一个组织,当用户在select中更改选项时,页面默认回到第一个组织。

时间:原作者:5个回答

0 0

那么,collection_select 有一个选项来设置默认值。 就像你在这里的一些用户提供的上一个示例中所看到的:

http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/collection_select

你可以以做的是将选定的值设置为从url获得的参数,如下所示:

<%= collection_select :org, :id, Org.all, :id, :name, {:selected => params[:org_id]} %>

url的?org_id=2 部分内部转换为 params[:org_id],因此你可以像示例 above 那样使用它。
试试一下,看看它是否能工作。

原作者:
0 0

尝试使用 options_for_select 。在选定区域中给出参数 [value] 。 你的代码将如下所示:

Rails:

<%= select_tag"org_id", options_for_select(Org.all.collect{ |o| [o.name, o.id] }, {:selected =>"#{params[:org_id] if params[:org_id].present?}"}), {} %>
原作者:
...