Приложение, в котором я работаю, имеет разные пользовательские роли клиента, менеджера проектов и суперпользователя, а на целевой странице они могут искать статьи и есть расширенный фильтр для фильтрации записей после поиска. Нравится: Фильтровать по автору.Как ограничить пользователя поиском конкретной модели?
Я хочу скрыть предварительный фильтр для клиента, для этого я хочу определить способность, используя cancancan.
В настоящее время я делаю это с использованием методов модели. Эти методы возвращают true и false по типу пользователя.
client?
project_manager?
super_user?
Текущий код:
<% unless current_user.client? %>
<%=link_to "Advance Search", "#" %>
<%end%>
Я хочу, чтобы удалить это и использовать cancancan вместо этого.
<%if can? :filter, Article %>
<%=link_to "Advance Search", "#" %>
<%end%>
Для этого я попытался
cannot :filter, Article if user.client?
Но это ограничение всех пользователей фильтрации.
@pradeepDhingra. не может: фильтр, статья, если user.client? эта строка должна ограничивать только клиент, можете ли вы рассказать нам, как это ограничивает всех пользователей? – Packer
@Prabhakar его не показывает ссылку предварительного поиска для всех пользователей. Это мой вопрос, он не должен ограничивать всех пользователей. Раньше он показывал ссылку для других пользователей, кроме клиента, но после применения cancan ограничил всех пользователей. –