Rails, тот же вид, разные контроллеры

map.resources :люди

карта.ресурсы :люди

class Persons_controller < ApplicationController::Base
  #the whole logic for the controller
end

class People_controller < PersonsController
  #nothing special there
end

Как я могу использовать представления из /app/views/persons/ при доступе к моему приложению из http://mydomain.com/people/1 ?

Я получаю сообщение об ошибке о пропавшем представлении people/show.erb, я не хочу использовать символические ссылки


person astropanic    schedule 01.09.2010    source источник


Ответы (2)


http://api.rubyonrails.org/classes/ActionView/Partials.html

В ваших представлениях я бы предложил создать общую папку для хранения общих представлений.

/views/shared
/views/shared/_people.html.haml

Затем вы можете сделать что-то вроде того, где вы хотите использовать этот фрагмент.

render :partial => "shared/people"

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

person David Lyod    schedule 01.09.2010

Думаю, правильно будет последовать совету Дэвида Лайода. Это гораздо лучшая организация, и вы всегда знаете, где находятся ваши общие файлы. Однако вы все еще можете использовать ту же концепцию, поместив частичный файл _people.html.erb в каталог views/persons. Затем в файле просмотра людей, который его использует

render :partial => "persons/people"

Надеюсь это поможет.

person Warren    schedule 01.09.2010