Skip to content

Instantly share code, notes, and snippets.

@marka2g
Forked from dhh/gist:1014971
Created September 14, 2017 21:18
Show Gist options
  • Select an option

  • Save marka2g/61a1c059b84ebeb7167e35ae17141cd2 to your computer and use it in GitHub Desktop.

Select an option

Save marka2g/61a1c059b84ebeb7167e35ae17141cd2 to your computer and use it in GitHub Desktop.
Use concerns to keep your models manageable
# autoload concerns
module YourApp
class Application < Rails::Application
config.autoload_paths += %W(
#{config.root}/app/controllers/concerns
#{config.root}/app/models/concerns
)
end
end
# app/models/concerns/trashable.rb
module Trashable
extend ActiveSupport::Concern
included do
default_scope where(trashed: false)
scope :trashed, where(trashed: true)
end
def trash
update_attribute :trashed, true
end
end
# app/models/message.rb
class Message < ActiveRecord::Base
include Trashable, Subscribable, Commentable, Eventable
end
@marka2g

marka2g commented Sep 14, 2017

Copy link
Copy Markdown
Author

David's gist on model Concerns

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment