如何使用选择菜单和link_to重定向到另一个页面 - Ruby on Rails

时间:2010-05-31 17:07:26

标签: ruby-on-rails select

我想使用选择菜单重定向到另一个页面,但是当我选择“主页”时,它不会将我重定向到主页面。什么都没发生......

<select>
    <option>Select a menu</option>
    <option><%= link_to 'Home', '/' %></option>
</select>

感谢您的帮助。

3 个答案:

答案 0 :(得分:12)

您不能在SELECT标记内放置链接。这是HTML的限制,而不是Rails。

你应该做的事情是这样的:

<%= select_tag(:menu_select, options_for_select([ 'Home', '/' ])) %>

然后,您需要确保在选择新链接时加载页面。这可以通过jQuery使用类似的东西来完成:

$('#menu_select').bind('change', function() { window.location.pathname = $(this).val() });

更改表单选择后,将加载新URL。

答案 1 :(得分:5)

link_to助手输出一个HTML超链接,当嵌套在option元素中时,该超链接无效。您应该更改选项,以便它们具有以下格式:

<option value="/">Home</option>

然后您可以使用一些JavaScript来观察下拉列表的onchange事件,并将document.location.href设置为所选选项的值。这将执行重定向。

或者,您可以在提交表单的下拉列表旁边有一个 Go 提交按钮,然后让Rails使用{{1}执行服务器端重定向到所选选项的页面帮助者。

答案 2 :(得分:3)

这也有效:

<select onChange="if(this.selectedIndex!=0) self.location=this.options[this.selectedIndex].value">
<option value="/">Home</option>
</select>