Подкласс AbstractController требует явного вызова рендеринга - PullRequest
2 голосов
/ 30 декабря 2010

Я пытаюсь понять, как наилучшим образом визуализировать виды из моделей. Наилучший подход, который я нашел, - это расширение AbstactController, потому что тогда я могу структурировать код как MVC. Теперь остается только небольшая проблема: мне нужно явно вызывать render в моих методах действия, чтобы визуализировать представление (что не нужно в Rails).

Например: чтобы создать альтернативу ActionMailer, я реализовал класс EmailsController, который расширяет AbstractController.

class EmailsController < AbstractController::Base
  include AbstractController::Rendering
  include AbstractController::Layouts
  include AbstractController::Helpers
  include AbstractController::Translation
  include AbstractController::AssetPaths
  include ActionController::UrlWriter

  helper ApplicationHelper

  self.view_paths = "app/views"

  def notification
    render 'notification'
  end
end

Как мне избавиться от вызова рендера?

Спасибо!

1 Ответ

1 голос
/ 30 ноября 2011

Вам также необходимо включить include ActionController::ImplicitRender. Он отображает представление по умолчанию, если тело ответа еще не было отображено: https://github.com/rails/rails/blob/5b2eb64ceb08cd005dc06b721935de5853971473/actionpack/lib/action_controller/metal/implicit_render.rb#L5

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