【问题标题】:How to make radio button checked by default based on different user role?如何根据不同的用户角色默认选中单选按钮?
【发布时间】:2013-06-29 17:37:51
【问题描述】:
<% if role.name == "Administrator" %>
     <%= f.radio_button:status,'available', :checked => (params[:status] == nil ? true : params[:status]) %><label>Available</label>
     <%= f.radio_button:_status,'not available' %><label>Not Available</label>
<% else %>
     <%= f.radio_button:_status,'available' %><label>Available</label>
     <%= f.radio_button:_status,'not available' %><label>Not Available</label>
<% end %>

默认情况下,我希望在管理员的情况下检查 available 单选按钮,并在其余用户的情况下检查 not available 单选按钮。但是他可以更改它,并且在查看以进行编辑时,它应该显示他/她选择的那个,而不是默认的。

我该怎么做?请帮帮我。

【问题讨论】:

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


【解决方案1】:

试试下面的代码。

<%= f.radio_button:_status,'available', :checked => (role.name == "Administrator") %><label>Available</label>
<%= f.radio_button:_status,'not available', :checked => (role.name != "Administrator") %><label>Not Available</label>

【讨论】:

  • 这是行不通的,因为checked 如果插入到 HTML 元素中,将始终为 true,无论其设置为什么。你可以read more on it here
  • 实际上,这会起作用,至少在 Rails 5 中是这样。
【解决方案2】:

如果您查看 rails radio_button_tag 的文档,您会发现它接受以下参数:

radio_button_tag(name, value, checked = false, options = {})

所以下面的代码就足够了

<%= f.radio_button:_status,'available', role.name == "Administrator" %><label>Available</label>
<%= f.radio_button:_status,'not available', role.name != "Administrator" %><label>Not Available</label>

无需添加可能导致不良行为的“已检查”属性

【讨论】:

    猜你喜欢
    • 2020-05-28
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 2021-10-07
    • 2020-11-01
    • 2017-10-02
    • 2019-01-21
    • 1970-01-01
    相关资源
    最近更新 更多