2009-09-26 1 views
-1

Эй, ребята. Я создаю приложение rails и являюсь одним из первых, когда использовал шаблон MVC, не говоря уже о рельсах, я сталкиваюсь с неопределенностью и неопределенностью. Я уже определил application.html.erb, который отлично работает, имеет оператор yield, который отображает вид текущего действия.Помощь с структурированием Rails-приложения

Я хочу, чтобы application.html.erb содержал какой-то динамический контент, хотя, например, на боковой панели. Мне интересно, куда должен идти код для этого динамического контента. Во время экспериментов я создал контроллер, называемый home, и определил там логику, хотя я не думаю, что он должен туда идти. Просто я не создал модель, потому что для этого мне не нужна какая-либо форма базы данных, и большинство примеров, которые я видел, используют модели специально для взаимодействия с некоторыми формами постоянных данных. В домашнем контроллере я определил действие индекса, и когда я перехожу на mysite.com/home/, он показывает динамический контент, который я хотел увидеть, но в разделе содержимого макета (где есть оператор yield).

В целом, я чувствую, что все запуталось сейчас, и мне интересно, как бы я разместил этот динамический контент в боковой панели моего макета application.html.erb, чтобы он оставался на моем сайте, поскольку весь мой сайт использует этот макет. Я думал об использовании application_controller.rb, но что-то говорит мне, что я должен оставить это в покое.

Спасибо, дайте мне знать, если что-то не имеет смысла. Довольно трудно быть ясным, когда я действительно запутался.

ответ

2

application_controller.rb - прекрасное место для вашего содержимого боковой панели. Если ваш контент действительно широко распространен, например, навигация по боковой панели, то это подходящее место для него.

Я рекомендую поместить ваш HTML для боковой панели в частичной или двух, и логики, которая заполняет его в application_controller действие, которое будет выполняться для каждого запроса страницы, что-то вроде:

before_filter :populate_sidebar 

def :populate_sidebar 
    @sidebar_content = foo 
end 
+0

Я ценю быстрый и точный ответ Дуга. Я получил тот же ответ на IRC, поэтому я считаю, что это правильный способ сделать это. –

Смежные вопросы