Ruby 从另一个模块访问类的实例方法';s实例法

Ruby 从另一个模块访问类的实例方法';s实例法,ruby,metaprogramming,Ruby,Metaprogramming,我有一个类,它声明了许多实例方法 class User < Group def get_name end def show_profile end def get_task(task_id) #some logic end end 如何在不包含该类其他不必要的方法的情况下实现这一点。请提供帮助。如果get_任务方法不依赖于用户,则可以使用如下所示的类方法。如果它取决于用户,则必须先获取服务器,然后才能运行该方法 class User < G

我有一个类,它声明了许多实例方法

class User < Group
  def get_name

  end

  def show_profile

  end

  def get_task(task_id)
    #some logic
  end

end

如何在不包含该类其他不必要的方法的情况下实现这一点。请提供帮助。

如果get_任务方法不依赖于用户,则可以使用如下所示的类方法。如果它取决于用户,则必须先获取服务器,然后才能运行该方法

class User < Group
    def get_name

    end

    def show_profile

    end

    def self.get_task(task_id)
    #some logic
    end

end

class Project
    def design
        tid = 12
        design_task = User.get_task(tid)
    end
end
class用户
您不包括类,而是包括模块。你到底想干什么?是的。。你是对的。很抱歉我想要实现的是从模块Tasks::Project#design method调用get_task method。。我很抱歉。刚刚开始学习ruby元编程。我想你误解了我,你的代码对于模块任务是正确的,现在不是了。我的评论是关于您的以下几行:include Users从User类引入所有方法。在这种情况下,我只想要get_任务,而明确不想要get_名称、show_配置文件等。我试图从一个应用程序中理解代码。它的代码如上所述。模块任务;结束,然后声明类。到目前为止,我只看到了一个类似于我用来编写模块任务类Project end的代码。我不确定它与前一个有什么区别。
模块任务;结束
表示您在创建模块任务后立即结束了该任务的范围。因此,类项目不能像您在上一篇评论中发布的那样作为:
Task::Project
访问。这就是第一次改变和新改变之间的区别。对不起。我没有得到“如果它取决于用户,则必须先获取服务器,然后才能运行该方法”的语句。如果您希望“get_task”方法对用户的实例执行某些操作,则需要首先获取用户,然后调用user_variable.get_task(tid)。如果该方法没有对用户的特定实例执行任何操作,则可以使用类变量。
class User < Group
    def get_name

    end

    def show_profile

    end

    def self.get_task(task_id)
    #some logic
    end

end

class Project
    def design
        tid = 12
        design_task = User.get_task(tid)
    end
end