2013-09-05 4 views
0

Немного новый для рельсов, давний программист. У меня есть вопрос о взглядах, контроллерах и частицах на самом деле - интересно, хорошо ли у меня эта настройка.рельсы частичный с коллекцией/другой класс?

У меня есть диспетчер страниц, а на индексной странице (действительно, метод индекса страниц) у меня есть частичный макет, который называется featured (например, app/views/layouts/_featured.html.erb) - У меня также есть класс Featured. Я бы хотел, чтобы в основном был показан индекс выделенного класса. Но, конечно, это не работает. Таким образом возникает вопрос:

В самой странице я получил <% = визуализация «функция/индекс»%>, который я начинаю думать, что это неправильный путь ..

Do I ax этот частичный метод и просто позвоните <% = визуализировать функции/индекс '%>, и пусть все будет происходить изначально или

Каким будет правильный способ маршрутизации выделенной коллекции в частичную? Поскольку на самом деле контроллер - это страницы, мне кажется, что я борюсь с течением.

ответ

0
<%= render 'features/index' %> 

Выполнение этого неправильно, учитывая ваше описание. Это попытается сделать частичное от app/views/features/_index.html.erb, о котором вы не упомянули.

Оказывать парциальное в app/views/layouts/_featured.html.erb вы могли бы сделать (возможно, немного более многословным, что необходимо)

<%= render partial: "layouts/featured" %> 

Лучшее предложение, которое я могу предложить, чтобы передать коллекцию в этой частичной

<%= render partial: "layouts/featured", locals: { features: @features } %> 

Поскольку кажется, что вы намерены, чтобы это частичное изображение появилось как часть макета Предполагаю, что вы хотите, чтобы это частичное изображение появилось на мульти страниц. Это означает, что при нескольких действиях вам необходимо присвоить набор Feature экземпляров этой переменной @features. Один из способов сделать это - before_action.

before_action :setup_features 

# ... 

private 

    def setup_features 
    @features = Feature.all 
    end 

Хорошее место, чтобы начать обучение больше о фильтрах в Rails Guide

0

парциальное в «приложение/просмотра/макеты/_featured.html.erb» может быть воспроизведен только с

render 'featured' 

и не 'featured/index'

render 'featured/index' будет оказывать «приложение/просмотров/макеты/признакам/_in dex.html.erb

+0

render '/ featured/index' будет отображать "приложение/views/featured/_index.html.erb – Hovo

0

Поскольку диспетчер страниц действительно отображает главную индексную страницу в индексе def, все, что мне нужно было сделать, это @features = Feature.all, и переменная доступна для частичного вытягивания на индексную страницу ,

Мне нужно привыкнуть к тому, как простые рельсы поступают с других языков/фреймворков.

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