Ruby on rails 如果选择单选按钮,将链接列表更改为Rails 4中的路径
我有一个链接到的列表,如下所示:Ruby on rails 如果选择单选按钮,将链接列表更改为Rails 4中的路径,ruby-on-rails,radio-button,conditional,Ruby On Rails,Radio Button,Conditional,我有一个链接到的列表,如下所示: <li><%= link_to "Carpooling", offers_path(:category => {:category => "Carpooling"}) %></li> <li> <%= link_to "Tutoring", offers_path(:category => {:category => "Tutoring"}) %></li> <
<li><%= link_to "Carpooling", offers_path(:category => {:category => "Carpooling"}) %></li>
<li> <%= link_to "Tutoring", offers_path(:category => {:category => "Tutoring"}) %></li>
<li><%= link_to "Studying", offers_path(:category => {:category => "Studying"}) %></li>
<li><%= link_to "Career", offers_path(:category => {:category => "Career"}) %></li>
<li><%= link_to "Art", offers_path(:category => {:category => "Art"}) %></li>
<li><%= link_to "Culture", offers_path(:category => {:category => "Culture"}) %></li>
{:category=>“拼车”})%>
{:category=>“Tutoring”})%>
{:类别=>“学习”})%>
{:类别=>“职业”})%>
{:类别=>“艺术”})%>
{:category=>“Culture”})%>
我想有两个单选按钮,一个叫要约,一个叫请求。如果选择了Requests单选按钮,我希望路径更改为Requests\u path…
。如果选择了“提供”单选按钮,我希望路径保持原样
我以前没有编码单选按钮,所以不知道从哪里开始。我想我将使用单选按钮标记
帮助程序,或者我应该将其制作成一个表单并使用f.单选按钮
?我的主要问题是找出条件语句。有什么想法吗
您可以使用路由到不同资源的“索引”操作,而无需硬编码方法名称
<li><%= link_to "Carpooling", polymorphic_path(params[:selected_resource], :category => {:category => "Carpooling"}) %></li>
{:category=>“拼车”})%>
其中,
params[:selected_resource]
与您的无线电输入的名称匹配,并且该输入的值是“requests”或“offers”听起来您希望链接集动态更改,就像页面加载一样,用户可以选择requests或offers。如果是这样的话,我会在这里给你基本的方法,我相信你可以从那里开始
首先,单选按钮是客户端元素,在为用户呈现页面后与之交互。因此,任何rails助手等在这里都不再有用。因此,要完成这个条件逻辑,您需要客户端编码的帮助,或者更具体地说,需要通过jQuery使用javascript
这里有很多方法,但我推荐一个快速的方法
首先,绘制要显示在页面上的所有元素,如下所示:
<%= link_to "Text 1", my_path, :class => 'link request_link' %>
<%= link_to "Text 2", my_path, :class => 'link offer_link' %>
同样,有很多方法可以实现这一点,但这里的要点是,您需要使用javascript来实现这一点
希望有帮助 嘿,我试过了,但是我得到了提供的错误
Nil位置。无法生成URI。
。你知道这是什么原因吗?可能params[:selected\u resource]
是nil
。您可能需要考虑在控制器中设置一个实例变量,并在没有选择任何参数时将其设置为合理的默认值。
<a class="link request_link" href="/my_path">Text 1</a>
<a class="link offer_link" href="/my_path">Text 2</a>
<input class="link_selector" type="radio" name="link_selector" value="request_link" />
<input class="link_selector" type="radio" name="link_selector" value="offer_link" />
//This happens when the page is ready
jQuery(document).ready(function() {
//Hide all links
$(".link").hide();
//Add a listener to the radio buttons
$(".link_selector").change(function() {
var value = $(this).val()
$(".link").hide(); //Hide all links
$("." + value).show(); //Show the appropriate links
});
//Optionally, pre-select one of the radio buttons at this point, which
//should trigger the listener to show the proper links; otherwise, no
//links will appear when the page initially loads.
});