从另一个模块的实例方法访问类的实例方法

时间:2014-10-18 12:32:07

标签: ruby metaprogramming

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

class User < Group
  def get_name

  end

  def show_profile

  end

  def get_task(task_id)
    #some logic
  end

end

我想从模块中调用其中的一些方法。我可以使用Include语句来完成它。

include用户从User类中引入所有方法。在这种情况下,我只想要get_task并明确地不需要get_name,show_profile等..

我有一个Tasks模块,它也有一组方法,其中一个方法调用User类的get_task方法。

    module Tasks
      class Project
        def design
          tid = 12
          design_task = get_task(tid)
        end
      end
   end

如果不包括该类的其他不必要的方法,如何实现这一目标。请帮忙。

1 个答案:

答案 0 :(得分:0)

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

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