我想使用演示者(如此处所示:http ://railscasts.com/episodes/287-presenters-from-scratch?view= asciicast )来清理我的 static_pages 视图,但他的方法似乎依赖于底层模型,而 static_pages 没有。我可以将此方法用于我的静态主页吗?
我的用户设置(效果很好并且有相应的模型)如下所示:
Presenter:
class UserPresenter < BasePresenter
presents :user
def h
@template
end
def admin_text
if user.admin?
'This is an admin'
else
'This is not an admin'
end
end
end
Users/Show:
<% present @user do |user_presenter| %>
<div class="row">
<dl>
<dt>Username:</dt>
<dt><%= @user.username %></dt>
<dt>Email:</dt>
<dt><%= @user.email %></dt>
<dt><%= user_presenter.admin_text %>
</dl>
</div>
<% end %>
我想使用类似的结构来清理我的_header
部分,它呈现在 中application.html.erb
,其中一部分看起来像这样:
from _header.html.erb:
<% if current_user && current_user.admin? %>
<li><a href="#">All Notes</a></li>
<% end %>
如何使用演示者将此逻辑移出视图,并让视图显示如下内容:
static_presenter.admin_all_notes
将必要的视图代码提交给home.html.erb
?
我不确定我是否以最好的方式提出了这个问题,但我的目标是使用像 Ryan Bates 这样的演示者来清理我的 static_pages 视图,这些视图没有相应的模型。
谢谢!
编辑:
我对如何包装静态页面(例如home.html.erb
)以及传递给块的内容以及如何从静态页面引用演示者类中的方法感到特别困惑。