0

我不确定如何在视图 IF 语句中使用 OR。

这不起作用:

<% if current_user.employee.emptype.typename == "ADMIN" or "TECH" %>

谢谢!

4

3 回答 3

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 关键字,它们的运算符优先级与&&and不同||

于 2013-04-02T15:51:33.917 回答
0

您可以通过以下两种方式之一执行此操作。我更喜欢第一种方法。

<% if current_user.employee.emptype.typename.in?(["ADMIN", "TECH"]) %>

...或者...

<% if current_user.employee.emptype.typename == "ADMIN" || current_user.employee.emptype.typename == "TECH" %>
于 2013-04-02T15:53:53.693 回答
0

那是行不通的,它与视图无关。在 Ruby 中,所有字符串都true在 if 语句中求值。

您必须根据类型名称检查这两个值,如下所示:

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)

另请参阅本文以比较 Ruby 中的||or

于 2013-04-02T15:55:16.630 回答