我有一个collection_select,当单击发生时,它会触发一些JS来在我的URL中设置一个id。这是密码。
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>所有这些都是给我一个像/sessions?org_id=2这样的url。
我遇到的问题是,页面中的复选框默认为第一个组织,当用户更改select中的选项时,页面会触发/刷新,但是页面默认为第一个组织,因此URL中的id不会更改。
发布于 2013-07-23 19:16:58
嗯,collection_select确实有一个设置默认值的选项。正如您在最后一个用户提供的示例中所看到的那样:
select
您可以做的是将选定的值设置为从url获得的参数,如下所示:
<%= collection_select :org, :id, Org.all, :id, :name, {:selected => params[:org_id]} %>url的?org_id=2部分在内部被翻译成params[:org_id],所以您可以像上面的例子一样使用它。
试试看它是否有效。
发布于 2013-07-23 20:10:58
尝试使用options_for_select。并给出选定区域的参数值。您的代码将类似于:
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?}"}), {} %>https://stackoverflow.com/questions/17818516
复制相似问题