Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails-如何使条件单选按钮处于选中状态?_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails Rails-如何使条件单选按钮处于选中状态?

Ruby on rails Rails-如何使条件单选按钮处于选中状态?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,给定这样一个单选按钮: <%= radio_button_tag 'permission[role_id]', '2' %> 如何使单选按钮处于选中状态。仅在@permission.role\u id.nil时检查?或者@permission.role\u id==2 我试过: <%= radio_button_tag 'permission[role_id]', '2', @permission.role_id.nil? ? {:checked => true}

给定这样一个单选按钮:

<%= radio_button_tag 'permission[role_id]', '2' %>

如何使单选按钮处于选中状态。仅在@permission.role\u id.nil时检查?或者@permission.role\u id==2

我试过:

<%= radio_button_tag 'permission[role_id]', '2', @permission.role_id.nil? ? {:checked => true} : {:checked => false} %>
true}:{:checked=>false}%>
谢谢

checked
不是选项散列参数,它只是一个普通参数:

radio_button_tag(name, value, checked = false, options = {})
因此,您需要这样做:

<%= radio_button_tag 'permission[role_id]', '2', !!(@permission.role_id.nil? || @permission.role_id == 2) %>


忽略了对原始问题中要求的
@permission.role_id==2的情况进行说明。另外,为什么不直接使用
:checked=>@权限。角色\u id.nil?
sans?更多的是Ruby-esque。只是尝试了一下,但运气不好。还必须更新它,以解决上述两个用例。。。思想?(@permission.role_id.nil?| |(@permission.role_id==2)?真:假)}%>奇怪,甚至做了{:checked=>(@permission.role_id==2?假:假)}总是被检查true@coreyward感谢您的反馈-我现在正在使用“双重爆炸”。@AnApprentice-我已经编辑了答案-问题是,
checked
没有传递到选项哈希中,它只是一个标准参数。