Можно ли перенаправить файл макета на контроллер? или же? - PullRequest
1 голос
/ 31 января 2011

В настоящее время в одном из моих видов макета есть код, похожий на этот.

<%- pending_items = items.pending.count
if pending_reviews > 0 -%>
    <div id="notice">
        <%= link_to("YOU HAVE #{pluralize(user_pending_items, 'PENDING ITEMS')}", user_item_path) %>
    </div>
<%- end -%>

Мне нужно расширить код еще несколькими условиями, а затем, если определенное условие выполнено, перенаправить на другое действие. Вот несколько вопросов:

  1. если выполнено определенное условие, могу ли я перенаправить обратно на контроллер из файла макета? я еще не нашел ничего, что работает.
  2. также, имеет ли смысл запускать все эти условия в контроллере? Я попытался поместить его в свой home_controller, но макет не собирал значения.

Спасибо.

Ответы [ 2 ]

1 голос
/ 31 января 2011

Я бы порекомендовал разместить логику в вашем контроллере или модели. Вам придется использовать переменные экземпляра для передачи значений в ваш макет:

# in your controlller
@pending_items = Item.pending.count
if @pending_items > 0
  ...
  redirect_to ...
else
  ...
  redirect_to ...
end

Переменная экземпляра @pending_items будет доступна в вашем макете.

1 голос
/ 31 января 2011

Похоже, код, который должен быть перемещен в контроллер.Если вы сделаете это для каждой страницы, вы можете переместить ее в контроллер приложения в фильтр «до» ( о фильтрах ).Помните, что контроллер должен устанавливать переменные экземпляра (с @ в начале), если вы хотите использовать их в поле зрения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...