Class: ActionPage::BaseController

Inherits:
ApplicationController
  • Object
show all
Defined in:
app/controllers/action_page/base_controller.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ BaseController

Returns a new instance of BaseController.



19
20
21
22
# File 'app/controllers/action_page/base_controller.rb', line 19

def initialize(*args)
  super
  append_view_path("app/views/#{self.class.page_class.view_key}")
end

Class Method Details

.page_classObject



10
11
12
13
14
15
16
17
# File 'app/controllers/action_page/base_controller.rb', line 10

def self.page_class
  @@page_class ||= begin
   page_class = name.sub(/Controller\z/, '')
   page_class.singularize.constantize
   rescue NameError
     raise #ActionPage::MissingPageClass.new(page: page_class)
   end
end

.renders_page(page) ⇒ Object



6
7
8
# File 'app/controllers/action_page/base_controller.rb', line 6

def self.renders_page(page)
  @@page_class = page
end

Instance Method Details

#indexObject



24
25
26
# File 'app/controllers/action_page/base_controller.rb', line 24

def index
  @pages = page_class.all
end

#showObject



28
29
30
31
32
33
34
# File 'app/controllers/action_page/base_controller.rb', line 28

def show
  @page = page_class.find(params[:id])
  if @page.nil?
    raise ActionController::RoutingError.new("Not Found")
  end
  render
end