设置单选按钮=从控制器检查

时间:2011-06-09 12:06:34

标签: ruby-on-rails-3

我有四个单选按钮,如下所示: -

<%= radio_button_tag ch,@choices[0].id %><%= label_tag :cid, @choices[0].Option %>
<%= radio_button_tag ch,@choices[1].id %><%= label_tag :cid, @choices[1].Option %>
<%= radio_button_tag ch,@choices[2].id %><%= label_tag :cid, @choices[2].Option %>
<%= radio_button_tag ch,@choices[3].id %><%= label_tag :cid, @choices[3].Option %>

我想根据@choices [1] .id设置一个要检查的单选按钮。 我怎么能从控制器那里做到?

1 个答案:

答案 0 :(得分:0)

这不是你问题的真正答案,但因为你没有得到任何其他答案我会把它扔出去。

首先,大多数人都不会做你正在做的事情。

其次,想要准确地做出你所要求的事情是没有意义的。 IE浏览器。根据{{​​1}}的值设置单选按钮。也许你的意思是“@choices[1].id”的价值?

无论如何,回到“第一” - 大多数人会怎么做?

大多数人会使用@choice.id帮助程序,而不是radio_button帮助程序。那么,怎么做呢?那么你需要从你的控制器是一个单一的对象,你将调用一个方法来获取/设置你的无线电组中的一个值。通常这是一个与其他模型有radio_button_tag关联的模型对象。就像你可能有:

belongs_to

您将允许他们选择他们想要使用的class Customer < ActiveRecord::Base belongs_to :contact_method end ,因此假设您的控制器中设置了ContactMethod,您的单选按钮将如下所示:

@customer

这将创建尽可能多的单选按钮<% ContactMethod.all.each do |cm| %> <%= radio_button :customer, :contact_method_id, cm.id %> <%= label :customer, :contact_method_id, cm.name, :value => cm.id %> <% end -%> ,如果ContactMethod的值与@customer.contact_method s