Я не уверен, как использовать OR в выражении IF.RAILS или в выражении if
Это не работает:
<% if current_user.employee.emptype.typename == "ADMIN" or "TECH" %>
Спасибо!
Я не уверен, как использовать OR в выражении IF.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) %>
Будьте осторожны с ИЛИ и ключевые слова, они не имеют одинаковый приоритет операторов, чем &&
и ||
You может сделать это одним из двух способов. Я предпочитаю первый метод.
<% if current_user.employee.emptype.typename.in?(["ADMIN", "TECH"]) %>
... или ...
<% if current_user.employee.emptype.typename == "ADMIN" || current_user.employee.emptype.typename == "TECH" %>
Это не будет работать, и это не имеет ничего общего с видом. В 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.
Спасибо за информацию! – Reddirt
@Reddirt. См. Ответ awendt, он следует полезной ссылке, чтобы понять разницу между && и. – pierallard