javascript - Rails 使用 collection_select 和 javascript 进行重定向

标签 javascript ruby-on-rails

我有一个 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。

我遇到的问题是页面中的选择框默认为第一个组织,当用户更改选择中的选项时,页面会触发/刷新,但页面默认返回第一个组织,因此URL 中的 id 不会改变。

最佳答案

尝试使用 options_for_select。并在选定区域中给出 params[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?}"}), {} %>

关于javascript - Rails 使用 collection_select 和 javascript 进行重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17818516/

相关文章:

javascript - jQuery 使用 transaction.executeSql() 返回未定义

javascript - Firefox 插件仅在调试状态下执行

javascript - 不透明度或页面背景显示在弹出窗口的半页上

javascript - 告诉浏览器的 Javascript 版本

ruby-on-rails - Nginx 如何将 SSL 加密数据传递给 Rails 应用程序?

mysql - Ruby on Rails where 子句找不到正确的记录

ruby-on-rails - 我如何检查类或 json 对象中的所有属性/值是否为 nil

javascript - 如何更改标签的 fontFamily 并删除 chart.js 中的网格

ruby-on-rails - 密码更新后使 Devise 用户 session 标识符失效

javascript - 在 Rails 中构建分析仪表板