ruby-on-rails - 扩展 ActiveSupport::Concern

标签 ruby-on-rails

我正在尝试在不同的 Rails 项目中扩展现有的关注点。
该模块存在于我需要的 gem 中:

module Foo
  extend ActiveSupport::Concern
  included do
    #some stuff
  end

  def method_a
  end
end

然后在我的项目中:
module Foo
  extend ActiveSupport::Concern
  included do
    #some other stuff
  end

  def method_b
  end
end

结果是,包括 Foo 的对象只有 method_b,并且只在包含时运行#some other stuff。有没有办法让包含下的所有代码运行,并添加所有方法?

编辑:gem 和项目都是我的,如果有更合适的解决方案,我不会死心塌地使用 ActiveSupport::Concern。

最佳答案

您不应该直接覆盖或扩展关注点。使用一个简单的模块可能会很有用,但关注点被设置为显式扩展:

module MyFoo
  extend ActiveSupport::Concern
  extend Foo

  included do
    #some other stuff
  end

  def method_b
  end
end

关于ruby-on-rails - 扩展 ActiveSupport::Concern,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32886674/

相关文章:

mysql - 如何在 RSpec 测试中禁用 MySQL 唯一约束

mysql - 获取分页查询中的结果总数

jQuery遍历dom : Not finding correct location

javascript - 在链接中使用 jQuery 来添加字段

javascript - Rails - 用最好的 gem 创造记录

javascript - 如果出现验证错误,如何在 Rails 中保持模式打开

ruby-on-rails - Rails - Comments w acts_as_nested_set - 当删除从属记录时删除销毁数据

css - 使用 Rails 安装 Bootstrap

javascript - 从 Javascript 调用 Rails Helper

ruby-on-rails - Rspec 中回形针内容类型验证失败