如何通过Rails 5中的链接选择单选按钮?

时间:2016-11-29 16:43:32

标签: javascript jquery html mysql ruby-on-rails

也许这甚至不可能,或者我在思考这个问题。我已经尝试过搜索StackOverflow这个特定的东西,我已经在我的RubyDevelopers slack组中寻求帮助,并且我已经在Codementor.io上获得了帮助,但我仍然无法使其工作。< / p>

这看起来很接近,但没有解决方案:How to use JQuery to preselect radio button on page redirect in Rails

我在Rails 5和主页(家庭控制器)上构建SaaS网站我列出了您的标准定价计划。致每一个&#34;立即加入&#34;按钮,我已经链接到注册页面,并在网址中包含了计划ID,例如:/ join-the-club?plan_id = 9。我甚至尝试过/加入俱乐部?plan_id = 9,checked = true,/ join-the-club ... plann_id.to_s = 9(某人对松弛的建议)。

在注册页面(用户控制器)上,还有与单选按钮相同的定价计划列表。这样做的原因是因为有多种方法可以访问此页面。菜单中还有一个链接,表示&#34;加入俱乐部&#34;将他们带到同一页面。无论如何,如果有人点击其中一个&#34;立即加入&#34;我想要自动选择正确的单选按钮。主页定价表中的按钮。

好的,现在代码。这是我在主页视图中的链接:

<div class="table-body">
  <a href="/join-the-club?plan_id=9"><button class="s1-button">JOIN NOW</button></a>
</div>

然后在注册页面上有计划的代码:

<% @plans.each do |plan| %>
  <tr>
    <td class="product-in-table">
     <%= s.label :plan_id, plan.name, :value => plan.id do %>
     <img class="img-responsive" src="assets/qva/cube.jpg" alt="">
     <div class="product-it-in">
      <h3><%= plan.name%></h3>
      <span><%= plan.size %></span>
     </div>
     <% end %>
    </td>
    <td>$ <%= plan.price / 100 %></td>
     <td class="shop-red">Monthly</td>
      <td>
       <%= s.radio_button :plan_id, plan.id,:checked => (plan == @plans.first) %>
      </td>
   </tr>
 <% end %>

以下是我检查时单选按钮的html:

<input type="radio" value="9" checked="checked" name="user[subscriptions][plan_id]" id="user_subscriptions_plan_id_9">

如果你想知道&#34; s&#34;就是这样:

<%= f.fields_for :subscriptions do |s| %>

因此,如果有人通过顶部菜单链接/ join-the-club进入注册页面,则已选择第一个计划选项。他们只需要离开它或选择另一个计划。但如果他们通过定价表进入,我需要选择正确的计划。 :)

根据我的理解,在URL中传递参数只是准备为该db列保存。

1 个答案:

答案 0 :(得分:0)

感谢@fanta和@Brad这就是答案:

因为我在创建新用户时需要这样做,所以我在用户控制器的“def new”下添加了变量:

@selected_plan_id = params[:plan_id]

然后在视图中,我将单选按钮代码更改为:

<%= s.radio_button :plan_id, plan.id, :checked => (plan.id == @selected_plan_id.to_i || ( !@selected_plan_id && plan == @plans.first)) %>

因此,如果某人仅使用“/ join-the-club”链接,则会选择第一个计划,但如果他们使用其中一个链接,例如定价表中的“/ join-the-club?plan_id = x”将参数添加到链接中,然后在注册页面上选择正确的计划单选按钮。