Rails4、Draper:经过身份验证的用户和视图

Rails 4, Draper: authenticated user and views

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

这个视图模式似乎没有分离关注点。

我在我的应用程序中包装了几个视图,逻辑要求用户登录,而是想分离关注点并放置 <% if user_signed_in? %> 它所属的逻辑...这对我来说似乎是装饰器的东西(因此是 Draper 标签)。

此处的最佳做法是什么?

不确定是否理解您的问题,但请尝试回答。 首先,为了分离逻辑,您不需要在所有逻辑前面使用装饰器,它们用于另一件事。 要分离逻辑,您可以根据当前用户状态使用简单的部分,例如:

<% 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

中声明此声明