用params检查Rails切换单选按钮

时间:2013-10-14 08:00:19

标签: ruby-on-rails slim-lang

我正在制作一个调查应用程序,可能答案在1-5之间同意/不同意。

如果用户提交表单并且没有回答所有问题,我会将其重定向回来,并且我尝试将正确的单选按钮设置为已选中,这样他们就不会丢失现有答案。

即如果问题5他们选择了4作为答案,那么我想将其值设置为4。

问题是下面的代码没有设置checked ='checked'应该。

input id="#{ question.id }-5" name=question.id type='radio' value='5' checked=(params[question.id.to_i.to_s.to_sym] == 5?'checked':false)

1 个答案:

答案 0 :(得分:8)

试试这个:

 checked=(params[question.id.to_s] == '5'?'checked':false)

主要变化是将params值与String '5'而不是Integer 5进行比较,因为params值是一个字符串本身。

此外,您不需要to_i.to_s.to_symto_s就足够了,但这不是问题。