25. 2
class SomeController < ApplicationController
:
:
def create
@presenter = SomePresenter.new(@some_model)
if @presenter.save
redirect_to :some_path
else
render :new
end
end
end
26. 2
class SomePresenter < PresenterBase
attr_reader :form
delegate :save, to: :form
def initialize(some_model)
@form = SomeForm.new(some_model.attributes, self)
end
:
:
end
27. 2
class SomeForm < FormBase
validate :something
:
:
def initialize(params)
:
:
end
end
29. SomeForm : Before
class SomeForm < FormBase
validate :something
:
:
def initialize(params)
:
:
end
end
30. SomeForm : After
class SomeForm < FormBase
validate :something
:
:
attr_reader :presenter
def initialize(params, presenter)
:
@presenter = presenter
:
end
def validate
presenter.some_methods
super
end
end
31. Presenter : Before
class SomePresenter < PresenterBase
attr_reader :form
delegate :save, to: :form
def initialize(some_model)
@form = SomeForm.new(some_model.attributes, self)
end
:
:
end
32. Presenter : After
class SomePresenter < PresenterBase
attr_reader :form
def initialize(some_model)
@form = SomeForm.new(some_model.attributes, self)
end
def save
:
@form.save
:
end
:
:
end