我可以在表单内使用单选按钮更改一个实例变量吗?

时间:2019-02-16 10:17:49

标签: ruby-on-rails radio-button

我的意图是使用单选按钮来更改实例变量的值,而我做不到。我正在使用此radio_button_tag代码:

<%= form_for(@cig) do |f| %>
 <h3>
  <%= f.radio_button :pack_id, 9 %>
  <%= f.label :pack_id_my, "From MY pack" %>
  <%= f.radio_button :pack_id, 2 %>
  <%= f.label :pack_id_gift, "From a GIFT pack" %>
</h3>
<h3><%= @cig.pack_id %></h3>

我想根据选中的单选按钮更改pack_id的值,但是我不知道如何访问该变量。我也尝试过radio_button_tag,但我做不到。

<%= form_for(@cig) do |f| %>
 <h3>
   <%= radio_button_tag(:pack_id, 9, true, checked ? @cig.pack_id = 9) %>
   <%= label_tag(:pack_id_my, "From MY pack") %>
   <%= radio_button_tag(:pack_id, 2) %>
   <%= label_tag(:pack_id_gift, "From a GIFT pack") %>
 </h3>
 <h3><%= @cig.pack_id %></h3>

1 个答案:

答案 0 :(得分:0)

解决了这个简单的代码;

<%= form_for(@cig) do |f| %>
    <h3>
      <%= f.radio_button :pack_id, Pack.last.id %>From <strong>MY</strong> pack
      <%= f.radio_button :pack_id, 2 %>  It's a <strong>GIFT</strong> cig
    </h3>
.
.
.

您仅需将单选按钮嵌套在表单中。就这样。 必须放置相同的变量名。这样,radio_button方法将在两个选项之间进行选择。如果您更改变量名称;该方法将允许您选择两个选项。不要忘记在控制器中的强params方法中包括实例变量:

  def cig_params
    # *Strong params*: You need to *whitelist* what can be updated by the user
    # Never trust user data!
    params.require(:cig).permit(:date, :minutes, :pack_id)
  end