- This tutorial assumes that you generated a work type name GenericWork. If you used a different name, substitute that name for all occurrences of GenericWork and generic_work.
The GenericWorksController class is generated with some default behaviors. It is located at
# Generated via # `rails generate hyrax:work GenericWork` module Hyrax class GenericWorksController < ApplicationController # Adds Hyrax behaviors to the controller. include Hyrax::WorksControllerBehavior include Hyrax::BreadcrumbsForWorks self.curation_concern_type = GenericWork end end
As usual, you can add code for special processing to the controller. The controller’s main purpose is to connect it to other classes that define the model, set up forms, and display show pages.
Files defined by the controller…
The model class, which is part of the standard Rails Model-View-Controller, has its name determined by Rails convention.
model_name = controller_name minus 'Controller' (e.g. GenericWork)
The form class is used to control how metadata appears on the new/edit work form. A form class is created for each work type when the work type is generated. The controller knows about this class through the work_form_service.rb form_class method.
Default: form_class = model_name.name + Form (e.g. GenericWorkForm)
Modifying: You can change the class that is used as the form class by setting it in the controller.
self.form_class = GenericWorkExtForm # UNCOMMON, see note below.
- It is uncommon to set self.form_class as the form class is already generated (e.g. GenericWorkForm) and can hold your extensions.
The presenter class is used to control how metadata appears on the work show page. This class is NOT generated. See Modifying the Show Page for more information on creating a presenter class. The default presenter class is defined in works_controller_behavior.rb
Default: show_presenter = Hyrax::WorkShowPresenter
Modifying: You can change the class that is used as the presenter class by setting it in the controller.
self.show_presenter = GenericWorkPresenter