Как показать контент, если current_user соответствует требованиям

Как мне написать условие if в представлении с помощью Slim? Я хотел бы показать контент, если current_user является подписчиком. У меня есть таблица подписок со столбцами user_id и cancelled. Пользователь имеет доступ к веб-сайту, если его идентификатор можно найти в таблице подписок под user_id, а столбец cancelled равен NULL. Если cancelled имеет значение 1, то у пользователя больше нет доступа.


person xps15z    schedule 13.07.2014    source источник


Ответы (1)


Если у вас настроены отношения, что-то вроде этого в качестве метода экземпляра в пользовательской модели должно работать.

def subscribed?
  subscriptions.where(cancelled: nil).exists?
end

Затем в представлении вы можете сделать что-то вроде:

<% if user.subscribed? %>
  Here ya go
<% else %>
  Go away
<% end %>

Очевидно, вы могли бы просто поместить логику в подписку? метод в представлении, но, возможно, это немного чище.

person Brad Werth    schedule 13.07.2014