加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby包含模块中的单一方法

发布时间:2020-12-16 20:03:39 所属栏目:百科 来源:网络整理
导读:我有一个模块的跟随 module SimpleTask def task1 end def task2 end def task3 endend 而且我有一个模型只需要SimpleTask模块的task2方法. 我知道包括SimpleTask在我的模型,包括SimpleTask将做的工作. 但是我想知道我是否只能在我的模型中包含特定的task2方
我有一个模块的跟随
module SimpleTask
    def task1
    end
    def task2
    end
    def task3
    end
end

而且我有一个模型只需要SimpleTask模块的task2方法.

我知道包括SimpleTask在我的模型,包括SimpleTask将做的工作.

但是我想知道我是否只能在我的模型中包含特定的task2方法.

解决方法

听起来你需要将#task2重构为一个单独的模块(例如BaseTask).那么你可以轻松地只包含BaseTask,只需要#task2.
module BaseTask
  def task2
    ...
  end
end

module SimpleTask
  include BaseTask

  def task1
    ...
  end

  def task3
    ...
  end
end

如果没有一个更具体的问题(如SimpleTask的方法之间的相互依赖等),很难帮助更多.

你可以做一些元编程,其中包括SimpleTask然后不定义你不想要的方法,但这是非常丑的IMO.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读