Rails Controller Integration
Pages are used as Rails view substitutes and therefore called in a Rails controller action:
app/controllers/some_controller.rb
1
class SomeController < ApplicationController
2
3
include Matestack::Ui::Core::Helper
4
5
def overview
6
render Pages::SomePage
7
end
8
9
end
Copied!
A Matestack page will in this case be yielded into the Rails layout, unless the Rails layout is disabled in the controller via:layout false

Passing data to pages

Sometimes you want to pass in data from the calling controller action into the page. This works the same way as seen at components:
1
class SomeController < ActionController::Base
2
3
include Matestack::Ui::Core::Helper
4
5
def some_page
6
render SomePage, foo: 'bar', bar: 'baz'
7
end
8
9
end
Copied!
1
class SomePage < Matestack::Ui::Page
2
3
required :foo
4
optional :bar
5
6
def response
7
div id: "my-page" do
8
plain context.foo # "bar"
9
plain context.bar # "baz"
10
end
11
end
12
13
end
Copied!
Copy link
Edit on GitHub