首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在模块中对方法调用进行范围调整

如何在模块中对方法调用进行范围调整
EN

Stack Overflow用户
提问于 2015-05-13 12:12:04
回答 1查看 247关注 0票数 0
  • 我想要定义一个封装模块的方法。
  • 它与不同模块中的方法具有相同的名称。
  • 当调用我想要的那个时,它会调用另一个先混在一起的。

代码:

代码语言:javascript
复制
class User
  include ModuleA
  include ModuleB
end

module ModuleA
  extend ActiveSupport::Concern

  included do
    def hi
    end
  end
end

module ModuleB
  extend ActiveSupport::Concern

  def hi(param)
  end

  def say_hi
    hi(param)
  end  
end

错误与

代码语言:javascript
复制
ArgumentError: wrong number of arguments (1 for 0)
# ./app/models/concerns/modulea.rb:16:in `hi'

Rails 4

EN

回答 1

Stack Overflow用户

发布于 2015-05-13 12:20:06

正确的答案是删除两个模块中包含的内容。实例方法将很高兴地包含在没有包含块的情况下。@Sergio Tulentsev建议

代码语言:javascript
复制
class User
  include ModuleA
  include ModuleB
end

module ModuleA
  extend ActiveSupport::Concern

  def hi
  end
end

module ModuleB
  extend ActiveSupport::Concern

  def hi(param)
  end

  def say_hi
    hi(param)
  end
end
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30214421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档