Рубин на рельсах:Могу ли я направить запрос непосредственно в представление?

StackOverflow https://stackoverflow.com/questions/1971677

  •  21-09-2019
  •  | 
  •  

Вопрос

У меня есть раздел администратора, в котором есть подкаталог controllers каталог.То есть каталог app/controllers/admin/ содержит набор файлов, каждый из которых содержит контроллер для обработки отдельной части раздела администратора.

Теперь я хочу создать очень простую «домашнюю страницу администратора», которая просто говорит что-то вроде «добро пожаловать в раздел администратора», но я хочу избежать создания для этой цели всего контроллера или размещения метода «действия» для это представление в каком-то другом произвольном контроллере.

Итак, вопрос в том, есть ли способ маршрутизировать «непосредственно к представлению» — маршрутизировать непосредственно в HTML-файл?(И я не хочу перенаправляться к HTML-файлу по запрошенному пути, например /some-file.html;Мне нужно проложить маршрут по такому пути, как /admin/.)

Задавать здесь этот вопрос вряд ли стоит потраченного времени на создание контроллера-заглушки, но я уверен, что такая необходимость у меня снова возникнет в будущем.

Это было полезно?

Решение

Нет, ты не можешь.Почему?

Дизайн:Это просто нарушение шаблона MVC, который Rails заставляет вас использовать для вашего же блага.Всегда присутствует контроллер.И да, даже для таких страниц-заглушек требуется контроллер.В любом случае, несколько строк кода вам не повредят, и вам это снова понравится, когда вам понадобится выполнить некоторый контроль доступа.

Надеюсь, что ответил на ваш вопрос :-)

Другие советы

Как говорит Мориц, вы не можете полностью обойти контроллер, но вам не обязательно создавать целый контроллер только для этого действия.Когда мне нужна страница типа «панель мониторинга» или «посадка», я просто добавляю действие в свой ApplicationController:

class ApplicationController < ActionController::Base
  def index
  end
end

Затем поместите свою страницу в app/views/application/index.html.erb.

В вашем случае вы можете поместить файл application_controller.rb в каталог app/controllers/admin/ и сделать там то же самое.

Я считаю, что это идеальное место для страниц, выходящих за рамки ресурса.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top