2010-11-16 2 views
0

У меня есть фотографии ресурсовRails 3, помогает при настройке конфигурации для контроллера

В настоящее время я эта работа:/фото

, который показывает фотографии # указательного контроллер, который является то, что я хочу .. .

Но теперь я хочу также/проекты/2/фотографии

, который должен показывать фотографии для этого проекта. Проблема в том, что это указывает на индекс def, и мне как-то нужно отдельное представление для этого пути.

Мысли? Благодарности

маршруты:

resources :projects do 
    resources :photos,do 
    collection do 
    get 'newjs' 
    end 
end 

ответ

1

PhotosController#index В действии вы можете проверить, если params[:project_id] определен - если после этого вы используете суб-ресурс. Если это не так, вы используете ресурс верхнего уровня.

+0

Спасибо ben but - Это кажется действительно грязным, нет? иметь большой оператор if для совершенно разных представлений в индексе def #? – AnApprentice

+1

Два разных вида? Или два разных набора логики контроллера? Если логика контроллера действительно отличается от других, то, скорее всего, что-то не так, как со структурой вашего кода, - либо вы должны реорганизовать часть этого кода в модели, либо не должны пытаться позволить одному ресурсу действовать как ресурс верхнего уровня и суб-ресурс. Если вы хотите рассматривать один ресурс таким образом, я считаю, что проверка params [: project_id] - это идиоматический и правильный способ сделать это. Может быть, если вы уточните подробности о деталях, я могу дать лучший ответ. –

+0

ой, также мне нужны разные страницы просмотра, что-то вроде project_photos_index, так как макеты очень разные. Мысли? – AnApprentice

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