2013-04-02 2 views

ответ

2

Написать что-то вроде этого:

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

Или лучше

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

Будьте осторожны с ИЛИ и ключевые слова, они не имеют одинаковый приоритет операторов, чем && и ||

+0

Спасибо за информацию! – Reddirt

+0

@Reddirt. См. Ответ awendt, он следует полезной ссылке, чтобы понять разницу между && и. – pierallard

0

You может сделать это одним из двух способов. Я предпочитаю первый метод.

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

... или ...

<% if current_user.employee.emptype.typename == "ADMIN" || current_user.employee.emptype.typename == "TECH" %> 
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) 

Также см this article для сравнение || и or в Ruby.

Смежные вопросы