如何在Rails中使用模型关注点

克里斯·杨

我试图将模型的不同部分引入关注。每种状态中的两个是AASM定义的状态,以及Paperclip的附件。

因此,我将相关代码移到单独的文件中。

app / models / concerns / user_aasm.rb

class User
    module UserAasm
        extend ActiveSupport::Concern
        included do
            include AASM
            aasm do
            state :unverified, initial: true
            state :approved
            state :suspended
            state :deleted
            state :banned
          end
        end
    end
end

在我的user.rb中,

include UserAasm

我收到以下错误:

Unable to autoload constant UserAasm, expected app/models/concerns/user_aasm.rb to define it

我不知道我在代码中出了什么问题。如何正确使用它?

内尔敏

您需要像定义它。

require 'active_support/concern'

module UserAasm
    extend ActiveSupport::Concern
    included do
        include AASM
        aasm do
        state :unverified, initial: true
        state :approved
        state :suspended
        state :deleted
        state :banned
      end
    end
end

然后在您的User模型中

include UserAasm

这不是使模型具有外观的正确方法,因为concerns文件夹用于放置在more之间共享的代码models您应该将modules其实现为某些行为,而不是从模型中提取代码并将其放入其中concerns

阅读CodeClimate的这篇文章

引用此链接。

像这样使用mixin类似于将杂物倾倒到六个单独的垃圾抽屉中并关上门,从而“清理”一个凌乱的房间。当然,它看上去更干净,但是垃圾抽屉实际上使识别和实施澄清域模型所必需的分解和提取变得更加困难。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在红宝石路线上使用关注点

来自分类Dev

在Rails 3和命名空间模型中使用关注点时,仅包含类方法一次

来自分类Dev

使用关注点覆盖Rails引擎模型,获取未初始化的常量Concerns :: Models

来自分类Dev

Ruby On Rails-在控制器中使用关注点

来自分类Dev

在设计Rails数据库架构时如何避免使用关注点?

来自分类Dev

是否可以在Rails之外使用关注点

来自分类Dev

Rails 4-使用关注点进行布线

来自分类Dev

Mongo DB如何分离关注点

来自分类Dev

关注点分离

来自分类Dev

如何创建一个带有参数的Rails 4关注点

来自分类Dev

Rails:如何从包含的关注点覆盖或私有化给定范围?

来自分类Dev

如何在不中断关注点的情况下触发JQuery操作

来自分类Dev

Rails 4多态关联和关注点

来自分类Dev

Rails 4关注点:给类实例变量建模

来自分类Dev

如何实现策略模式的创建/工厂关注点?

来自分类Dev

如何防止从关注点外部访问/覆盖方法?

来自分类Dev

PushSharp关注点分离

来自分类Dev

PushSharp关注点分离

来自分类Dev

如何在Rails模型中使用order by

来自分类Dev

如何在Rails模型中使用order by

来自分类Dev

CakePHP 3中的MVC-模型与视图之间的关注点分离

来自分类Dev

清理视图红宝石逻辑并将关注点分离到模型/控制器中

来自分类Dev

WCF关注点分离与DRY

来自分类Dev

对嵌套关注点的循环依赖

来自分类Dev

Java,Netbeans和关注点分离

来自分类Dev

WPF中的关注点分离

来自分类Dev

AngularJS和分析-分离关注点

来自分类Dev

两类关注点分离

来自分类Dev

重新分配关注点