用concerns来管理models

阅读更多

  
  
  
  
# 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

你可能感兴趣的:(Rails,ActiveRecord)