Skip to content

Extend Rails Engine’s business logic (models, controllers, helpers, etc.) easily from your application or other engine.

License

Notifications You must be signed in to change notification settings

atd/rails_engine_decorators

Repository files navigation

Rails Engine Decorators

Extend Rails Engine’s business logic (models, controllers, helpers, etc.) easily from your application or other engine.

This solution was first implemented in the Forem engine, see github.com/radar/forem/pull/260

Authors

Usage

(From Forem’s patch):

Standard practice for including such changes in your application or extension is to create a file within the relevant app/models or app/controllers directory with the original class name with _decorator appended.

### Adding a custom method to the Post model:

# app/decorators/models/forem/post_decorator.rb

Forem::Post.class_eval do
  def some_method
    ...
  end
end

### Adding a custom method to the PostsController:

# app/decorators/controllers/forem/posts_controller_decorator.rb

Forem::PostsController.class_eval do
  def some_action
    ...
  end
end

The exact same format can be used to redefine an existing method.

About

Extend Rails Engine’s business logic (models, controllers, helpers, etc.) easily from your application or other engine.

Resources

License

Stars

Watchers

Forks

Packages

No packages published