我不确定如何在视图IF语句中使用OR。
这不起作用:
<% if current_user.employee.emptype.typename == "ADMIN" or "TECH" %>
谢谢!
答案 0 :(得分:2)
写下这样的东西:
<% if current_user.employee.emptype.typename == "ADMIN" || current_user.employee.emptype.typename == "TECH" %>
或更好
<% if ['TECH', 'ADMIN'].include?(current_user.employee.emptype.typename) %>
小心使用OR和AND关键字,它们的优先级不同于&&
和||
答案 1 :(得分:0)
您可以通过以下两种方式之一完成此操作。我更喜欢第一种方法。
<% if current_user.employee.emptype.typename.in?(["ADMIN", "TECH"]) %>
...或...
<% if current_user.employee.emptype.typename == "ADMIN" || current_user.employee.emptype.typename == "TECH" %>
答案 2 :(得分:0)
这不起作用,它与视图无关。在Ruby中,所有字符串在if语句中都计算为true
。
您必须根据类型名称检查两个值,如下所示:
if current_user.employee.emptype.type_name == "ADMIN" || current_user.employee.emptype.type_name == "TECH"
或检查它是否包含在有效类型数组中:
if ["ADMIN", "TECH"].include?(current_user.employee.emptype.type_name)
另请参阅this article,了解Ruby中||
和or
的比较。