也许这甚至不可能,或者我在思考这个问题。我已经尝试过搜索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列保存。
答案 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”将参数添加到链接中,然后在注册页面上选择正确的计划单选按钮。