2011-07-24 103 views
0

我有一个表单,用户从几个先前提交的值中选择一个值。我已经使用单选按钮,因此用户只能选择一个答案。但这里的问题是,原来的答案可以有几个值,可以在一个数组中,所以我如何传递一个数组作为单选按钮的值?传递单选按钮的数组值

我现在正在做的是加入数组中的单选按钮的值,然后拆分它并存储它,当我收到它。 所以,在视图

<% answers.each do |answer|  
    <%= radio_button_tag "best_answer", answer.is_a?(Array) ? answer.join('|') : answer, :required => true %> 
<% end %> 

和Controller,

best_answer = params[:best_answer].split("|") 
params[:best_answer] = best_answer.length > 1 ? best_answer : best_answer[0] 

我们能否通过从单一单选按钮本身整个阵列或有另一种更好的方式来做到这一点?

回答

0

AnswerActiveRecord对象?如果不只是使用answer.id作为无线标签的值。如果没有,可以将其更改为ActiveRecord? ;)

+0

我使用mongoid和答案本身不是一个mongoid对象,但是一个对象的字段,所以如果我通过身份证,我将不得不从数据库检索所有这些对象,并获得他们的值的答案领域。我猜目前加入数组的方法会更容易。 – Dipil

+0

好吧,如何序列化(也许到'YAML'),也许编码整个事情(与'Base64')?你知道我的意思吗,还是应该发表其他答案? –

0

为什么你需要将数组设置为单选按钮的值?只需使用代表一组值的单选按钮的单个值即可。