2011-06-09 49 views
0

检查我有四个单选按钮如下: -设置的单选按钮从=控制器

<%= 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要检查的单选按钮中的一个。 如何从控制器执行此操作?

回答

0

这不是你的问题的答案,而是因为你还没有任何其他答案,我将把它扔在那里。

首先,大多数人不会做你在做什么。其次,要正确地做你想要的东西是没有意义的。 IE浏览器。根据@choices[1].id的值设置单选按钮。也许你的意思是像“@choice.id”的价值?

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

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

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 S和它将自动标记一个作为托运如果@customer.contact_method有相匹配的一个值,将创造尽可能多的单选按钮ContactMethod小号

+0

更新使用'* _i这些方法的版本。 – smathy 2011-06-09 20:36:35