RAILS或if语句

时间:2013-04-02 15:48:34

标签: ruby-on-rails

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

这不起作用:

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

谢谢!

3 个答案:

答案 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的比较。