#ruby-on-rails #decorator #railscasts #draper
#ruby-on-rails #декоратор #railscasts #draper
Вопрос:
После просмотра недавнего эпизода Railscasts на Draper я подумал, что мне стоит заняться рефакторингом некоторых своих материалов, чтобы использовать шаблон декоратора. А затем мгновенно сумел запутать себя.
У меня есть логика просмотра в моем файле макета приложения, которая предоставляет ссылки для входа или выхода из системы в зависимости от того, вошли ли вы в систему (дождитесь ее) или нет:
<% if signed_in? %>
<li><%= link_to "Sign out", signout_path, :method => :delete %></li>
<% else %>
<li><%= link_to "Sign in", signin_path %></li>
<% end %>
Кажется идеальным кандидатом для переноса этой логики в декоратор. Но это часть логики просмотра для всего приложения, так что я украшаю? Я предполагаю, что я хочу создать декоратор приложения, но мне неясно, как создать экземпляр объекта декоратора приложения и как ссылаться на него.
В эпизоде Railscasts показано, как создать декоратор приложения, но на него ссылаются из определенного контроллера (т. Е. Не Из контроллера приложения). Как мне структурировать вещи, чтобы я мог получить доступ к оформленной логике просмотра с каждой страницы сайта?
Комментарии:
1. Можно ли с уверенностью предположить, что у вас есть модель пользователя (или учетной записи, участника и т. Д.)? Если это так, я думаю, что декоратор, который вы имеете в виду, лучше всего воспринимается как декоратор для вашей пользовательской модели.
2. Спасибо, Макс, я думаю, ты попал в точку. Приветствия