我有以下代码可以在用户不是管理员时禁用一个 text_field
,它运行良好:
<div class="form-group">
<%= f.label :nome, "Genero" %>
<%= f.text_field :nome, class: "form-control", disabled: true if not is_admin? %>
</div>
但是当用户是管理员时,text_field
就消失了。 有人知道这是为什么,以及我该怎么做吗?
我有以下代码可以在用户不是管理员时禁用一个 text_field
,它运行良好:
<div class="form-group">
<%= f.label :nome, "Genero" %>
<%= f.text_field :nome, class: "form-control", disabled: true if not is_admin? %>
</div>
但是当用户是管理员时,text_field
就消失了。 有人知道这是为什么,以及我该怎么做吗?
is_admin?
返回true
或false
,你可以简单地执行以下操作:<%= f.text_field :nome, class: "form-control", disabled: !is_admin? %>
目前,if条件,即if not is_admin?
应用于整个文本字段,当is_admin?
返回true
时,文本字段会消失,当条件返回false
时,文本字段将显示。
disabled: true if not is_admin
出了问题。 - Vitor Vezaniif condition
在文本字段上充当修饰符一样,所以只有当if condition
中的条件为true
时,文本字段才会显示出来。在你的情况下,条件是if not is_admin?
。当使用管理员账户登录时,is_admin?
返回true
,所以not is_admin?
变成了false
,这就是为什么文本字段没有显示,因为条件是false
。 - Kirti Thoratif
测试应用于整个文本字段,而不仅仅是disabled
参数。true if not is_admin?
括在括号中。<%= f.text_field :nome, class: "form-control", disabled: (true if not is_admin?) %>
if
,如下所示:<%= (f.text_field :nome, class: "form-control", disabled: true) if not is_admin? %>
disabled: !is_admin?
呢? - Dave Newton