选择标记以链接到Rails中的新页面onChange

时间:2017-06-10 22:07:41

标签: html ruby-on-rails

构建我的第一个完整堆栈应用程序!

我正在尝试创建一个选择下拉列表,该下拉列表将导航到我的应用内的展示页面。每个选项都是一个拥有自己独立展示页面的大学。我在创建onChange侦听器和路由的语法时遇到问题,以便用户导航到正确的显示页面。

<select onChange="if(this.selectedIndex!=0) self.location=this.options[this.selectedIndex].value">
      <option>Select A College/University</option>
    <% @schools.each do |school| %>
      <option><%= link_to school.name, school_path(school)%></option>
    <%end%>
</select>

提前感谢您的支持!

2 个答案:

答案 0 :(得分:1)

<option>代码中的链接无效。当您尝试访问option.value时,您可能只是回到链接文本(即学校名称)。您需要做的是使链接成为值,学校名称为文本。

<% @schools.each do |school| %>
  <option value="<%= school_path(school) %>"><%= school.name %></option>
<% end %>

答案 1 :(得分:0)

实际上你应该使用如下所示的select_tag

<%= select_tag(:id, options_from_collection_for_select(@schools, "id", "name"), 
       :onchange => ("window.location.href = 'school/'+$(this).val();") %>