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

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

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

这里的最佳做法是什么?

4

1 回答 1

0

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

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

于 2015-10-01T10:47:33.300 回答