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.
    });