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

Mic*_*aël 3 select ruby-on-rails

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

<select>
    <option>Select a menu</option>
    <option><%= link_to 'Home', '/' %></option>
</select>
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.

tad*_*man 14

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

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

<%= select_tag(:menu_select, options_for_select([ 'Home', '/' ])) %>
Run Code Online (Sandbox Code Playgroud)

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

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

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


Joh*_*ley 5

link_to辅助输出,其是不会嵌套在内时工作的HTML超链接option元素.您应该更改您的选项,以便他们具有以下格式:

<option value="/">Home</option>
Run Code Online (Sandbox Code Playgroud)

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

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