Rails 4, Draper: аутентифицированный пользователь и представления

<% if user_signed_in? %>
    <!-- lots of html/erb -->
<% end %>

Эта модель представления, кажется, не разделяет проблемы.

Я обернул несколько представлений в моем приложении логикой, требующей, чтобы пользователь вошел в систему, и вместо этого хотел бы разделить проблемы и поставить <% if user_signed_in? %> логика, в которой он находится... мне кажется, что это декоратор (отсюда и тег Draper).

Какова лучшая практика здесь?

1 ответ

Решение

Не уверен, понял ваш вопрос, но попробуйте ответить. Сначала для разделения логики вам не нужно использовать декораторы в первую очередь, они служат для чего-то другого. Для разделения логики вы можете использовать простые партиалы в зависимости от текущего состояния пользователя, например:

<% if user_signed_in? %>
    <%= render 'file_with_html_for_signed_user' %>
<% else %>
    <%= render 'file_with_html_for_non_signed_user' %>
<% end %>

Вы можете объявить это заявление в своем layouts/application.html.erb

Другие вопросы по тегам