【问题标题】:Rails - How to make a conditional Radio Button checked?Rails - 如何检查有条件的单选按钮?
【发布时间】:2011-06-10 04:24:09
【问题描述】:

给定一个像这样的单选按钮:

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

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

我试过了:

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

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    The documentation for radio_button_tag 表示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 =&gt; !!@permission.role_id.nil? sans ternary?更像 Ruby 风格。
    • 刚刚尝试过,但没有成功。还必须对其进行更新以解决上述两个用例...想法? ( (@permission.role_id.nil?|| (@permission.role_id == 2) ? true : false) } %>跨度>
    • 奇怪,即使做 { :checked => (@permission.role_id == 2 ? false : false ) } 也总是检查为真
    • @coreyward 感谢您的反馈 - 我现在正在使用双键。
    • @AnApprentice - 我已经编辑了答案 - 问题是 checked 没有在选项哈希中传递,它只是一个标准参数。
    猜你喜欢
    • 1970-01-01
    • 2021-09-03
    • 2012-11-17
    • 1970-01-01
    • 2011-02-11
    • 2012-03-08
    • 2017-03-19
    • 2018-06-23
    • 1970-01-01
    相关资源
    最近更新 更多