用params检查Rails切换单选按钮

Lee*_*Lee 3 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)
Run Code Online (Sandbox Code Playgroud)

tih*_*hom 8

试试这个:

 checked=(params[question.id.to_s] == '5'?'checked':false)
Run Code Online (Sandbox Code Playgroud)

主要的变化是比较params值String '5'而不是Integer 5params值是一个字符串本身.

你也不需要to_i.to_s.to_sym,to_s但这不是问题.