Я хотел бы использовать презентаторов (как показано здесь: 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
?
Я не уверен, что задал этот вопрос наилучшим образом, но моя цель — использовать докладчиков, таких как Райан Бейтс, для очистки моих представлений static_pages, у которых нет соответствующей модели.
Спасибо!
Изменить:
Меня особенно смущает, как обернуть статическую страницу (например, home.html.erb
) и что передать в блок, а после этого, как сослаться на метод в классе презентатора со статической страницы.