Подтвердить что ты не робот

Просмотр рельсов без контроллера

Может ли рельсы обрабатывать создание представления без контроллера? Например, скажем, у меня есть страница, которая просто ссылается на другие страницы, мне нужно создать для этого фиктивный контроллер или я могу просто что-то сделать в файле маршрутов?

4b9b3361

Ответ 1

Нет. Все запросы должны проходить через контроллер.

Мне нравится иметь PagesController, с map.page ":action", :controller => "pages". Таким образом, я могу создать app/views/pages/foo.erb и получить его на /foo без дополнительного кода.

Ответ 2

Мне нравится августовский ответ, но у меня есть несколько иной метод.

Предположим, вы хотите добавить

/any/path/somefile.html.erb

но не добавить контроллер...

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

Затем в вашем файле маршрутов просто добавьте

match '/any/path/somefile' => 'application#somefile'

Ваш erb по-прежнему оценивает, вы получаете свой макет, и вы можете создать любой путь, который вы хотите... (все это устраняет необходимость в контроллере страниц)

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

Ответ 3

Другим вариантом было бы добавление статического html файла в ваш/общедоступный каталог, если вы действительно не нуждаетесь в нем как часть вашего приложения.

Ответ 5

Нет. Все запросы должны проходить через контроллер.

Если у вас есть страница типа index.html.erb и contact.html.erb в вашей папке просмотра. Вам нужно создать фиктивный контроллер под названием contact. Затем вы можете ссылаться на contact.html.erb на index.html.erb. И дайте ссылку как <%= link_to 'contact', :controller => "ads", :action => "contact" %> здесь "ads" → имя контроллера.