【发布时间】:2015-10-01 09:54:49
【问题描述】:
<% if user_signed_in? %>
<!-- lots of html/erb -->
<% end %>
这种视图模式似乎没有分离关注点。
我在我的应用程序中包装了几个视图,逻辑要求用户登录,而是希望分离关注点并将 它所属的逻辑......这对我来说似乎是一个装饰器(因此是 Draper 标签)。
这里的最佳做法是什么?
【问题讨论】:
<% if user_signed_in? %>
<!-- lots of html/erb -->
<% end %>
这种视图模式似乎没有分离关注点。
我在我的应用程序中包装了几个视图,逻辑要求用户登录,而是希望分离关注点并将 它所属的逻辑......这对我来说似乎是一个装饰器(因此是 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中声明此声明
【讨论】: