我正在制作一个调查应用程序,可能答案在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)
答案 0 :(得分:8)
试试这个:
checked=(params[question.id.to_s] == '5'?'checked':false)
主要变化是将params值与String '5'
而不是Integer 5
进行比较,因为params值是一个字符串本身。
此外,您不需要to_i.to_s.to_sym
,to_s
就足够了,但这不是问题。