Class: RubyUiScaffold::Generators::ScaffoldControllerGenerator

Inherits:
Rails::Generators::ScaffoldControllerGenerator
  • Object
show all
Includes:
AttributeHelpers
Defined in:
lib/generators/ruby_ui_scaffold/scaffold_controller/scaffold_controller_generator.rb

Overview

Inherits Rails’ ScaffoldControllerGenerator but:

(1) Overrides its controller template (controller.rb.tt) to render
    Phlex view classes instead of ERB partials.
(2) Redirects the template_engine hook to `ruby_ui_scaffold:scaffold`
    so our Phlex view generator runs (instead of erb:scaffold).

Constant Summary

Constants included from AttributeHelpers

AttributeHelpers::EXCLUDED_FROM_SORT

Instance Method Summary collapse

Methods included from AttributeHelpers

#reference_associations, #searchable_columns, #sortable_columns

Instance Method Details

#create_controller_filesObject

Pick the right controller template based on –datatable. Default is the simple controller (Model.all + render Index.new(models:)). With –datatable, emit the variant with SORTABLE_COLUMNS + params parsing + scope building.



37
38
39
40
# File 'lib/generators/ruby_ui_scaffold/scaffold_controller/scaffold_controller_generator.rb', line 37

def create_controller_files
  source = options[:datatable] ? "controller_data_table.rb" : "controller.rb"
  template source, File.join("app/controllers", controller_class_path, "#{controller_file_name}_controller.rb")
end