如何根据不同的用户角色默认选中单选按钮?
Posted
技术标签:
【中文标题】如何根据不同的用户角色默认选中单选按钮?【英文标题】: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
单选按钮。但是他可以更改它,并且在查看以进行编辑时,它应该显示他/她选择的那个,而不是默认的。
我该怎么做?请帮帮我。
【问题讨论】:
可能重复***.com/questions/4708910/… @KeesSonnema:我认为没有什么与他们要求的相似。请再次阅读我的问题并检查差异。 【参考方案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>
无需添加可能导致不良行为的“已检查”属性
【讨论】:
以上是关于如何根据不同的用户角色默认选中单选按钮?的主要内容,如果未能解决你的问题,请参考以下文章
html中<radio>单选按钮控件标签用法解析及如何设置默认选中
onSelectStart 处理按钮快速点击选中 文字被选中