我不确定如何在视图IF语句中使用OR。RAILS或if语句
这不起作用:
<% if current_user.employee.emptype.typename == "ADMIN" or "TECH" %>
谢谢!
我不确定如何在视图IF语句中使用OR。RAILS或if语句
这不起作用:
<% if current_user.employee.emptype.typename == "ADMIN" or "TECH" %>
谢谢!
写这样的事情:
<% if current_user.employee.emptype.typename == "ADMIN" || current_user.employee.emptype.typename == "TECH" %>
或者更好
<% if ['TECH', 'ADMIN'].include?(current_user.employee.emptype.typename) %>
小心OR和和关键字,它们不具有相同的优先级运营商比&&
和||
你可以通过以下两种方式之一来完成我更喜欢第一种方法。
<% if current_user.employee.emptype.typename.in?(["ADMIN", "TECH"]) %>
......或者......
<% if current_user.employee.emptype.typename == "ADMIN" || current_user.employee.emptype.typename == "TECH" %>
这是行不通的,它有没有关系的观点。在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
。
感谢您的信息! – Reddirt
@Reddirt看到awendt的答案,他遵循一个有用的链接来理解&&和和之间的区别。 – pierallard