Рельсы вид без контроллера - PullRequest
20 голосов
/ 30 августа 2009

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

Ответы [ 5 ]

22 голосов
/ 10 января 2013

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

Допустим, вы хотите добавить

/ любой / путь / somefile.html.erb

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

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

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

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

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

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

15 голосов
/ 30 августа 2009

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

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

3 голосов
/ 30 августа 2009

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

1 голос
/ 30 августа 2009

Если вы храбрая душа. Вы можете попробовать рельсы края 3. Кац продемонстрировал эту возможность в своем блоге. Вот ссылка:

http://yehudakatz.com/2009/07/19/rails-3-the-great-decoupling/

0 голосов
/ 28 сентября 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...