`
DerekMorgan
  • 浏览: 18884 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用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

分享到:
评论

相关推荐

    Laravel开发-laravel-draftable

    总结来说,"laravel-draftable"为Laravel开发者提供了一种优雅的方式来管理内容的草稿和发布状态,使得内容的创建、审核和发布过程更加规范和可控。通过灵活地集成此特性,开发者可以构建更专业且功能完善的Web应用...

    Ruby-Trailblazer构建在Rails之让提供一个直观的代码结构并给你一个面向对象的架构

    Trailblazer 将 MVC 分解为更小的概念,引入了“操作”(Operations)来处理业务逻辑,“视图模型”(View Models)来分离视图和控制器的逻辑,以及“实体”(Entities)和“政策”(Policies)来分别封装数据和权限...

    OMG 架构驱动的现代知识发现元模型 (KDM) V1.3 英文版

    The primary goal of KDM is to provide the capability to exchange models between tools and thus facilitate cooperation between tool suppliers to integrate multiple facts about a complex enterprise ...

    Laravel开发-eloquent-interactions

    Eloquent交互模式(Interactions)是Eloquent ORM的一个扩展,允许开发者创建可复用的代码块,以更高效地管理数据库操作。下面我们将深入探讨Eloquent交互模式及其在Laravel开发中的应用。 首先,Eloquent模型代表...

    Conditional Random Fields Tutorial

    CRF模型在处理变量之间相互依赖性的同时,也能够使用大量的输入特征来进行预测。CRF的优势在于结合了分类方法和图形模型的优点,能够紧凑地模拟多变量数据,并利用分类方法来进行预测。 CRF模型的介绍可以从以下几...

    Spring-MVC-model(1)

    模型数据被传递到视图之后,Spring MVC使用视图解析器来确定要显示的实际视图。这通常是基于模型中定义的视图名称进行的,如`"userDetails"`,视图解析器会将这个名字转换为实际的视图路径。 7. **多模型支持...

    vs2012 的MVC4实例

    在MVC4中,你可以使用Entity Framework等ORM(对象关系映射)工具来简化与数据库的交互。 2. **视图(View)** 视图是用户界面,负责展示由模型提供的数据。视图通常基于模板,允许开发者使用HTML、CSS和...

    ASP.NET Core_ Cloud-ready, Enterprise Web Application Development

    - **Separation of Concerns**:清晰地划分不同组件的职责,提高系统的可维护性和扩展性。 - **Control over the Generated HTML**:提供对生成的HTML更多控制权,便于定制和优化前端呈现。 - **Better Support for ...

    software architecture复习资料(包含考点)

    Parnas developed these ‘architectural’ concerns and turned them into fundamental tenets of Software Engineering. The main principles included: Information Hiding as the basis of decomposition for ...

    Online-Shop-asp.net-mvc

    ASP.NET MVC架构支持分离关注点(Separation of Concerns),通过模型(Model)、视图(View)和控制器(Controller)的组合,使代码结构更加清晰,易于测试和维护。项目的JavaScript元素可能用于增强用户体验,如...

Global site tag (gtag.js) - Google Analytics