在观看了最近的Railscasts episode on Draper后,我以为我会重构一些我的东西以利用Decorator模式。然后立即设法让自己迷惑。
我的应用程序布局文件中有视图逻辑,提供登录或注销链接,具体取决于您是否登录(等待它):
<% if signed_in? %>
<li><%= link_to "Sign out", signout_path, :method => :delete %></li>
<% else %>
<li><%= link_to "Sign in", signin_path %></li>
<% end %>
似乎是将逻辑转换为装饰器的完美候选者。但这是一个应用程序广泛的视图逻辑,所以我在装饰什么?我想我想创建一个应用程序装饰器,但我不清楚如何实例化app装饰器对象以及如何引用它。
Railscasts剧集确实展示了如何创建app装饰器,但是它是从特定控制器(即不是app控制器)中引用的。如何构建内容以便我可以从站点的每个页面访问装饰视图逻辑?