Rails - 文件夹中的文件列表

时间:2014-11-03 14:54:40

标签: ruby-on-rails activerecord active-directory

我有一个模块,模块下有一些文件

module Man

有五个名为

的文件
module man
   module head
      def a
      end
   end
end

module man
   module hand
      def a
      end
   end
end

我需要访问模块'man'下的子模块列表,我还需要访问每个子模块中的方法列表。

我试过这个

      array_notification_classes = Dir.entries("app/models/notifications").select {|f| !File.directory? f}

但它返回了一个子字符串列表,它是一个字符串。

 array_notification_classes  = ["head.rb", "hand.rb"]

从现在开始如何从每个子模块中获取方法名称列表?

2 个答案:

答案 0 :(得分:1)

拥有一组文件名,例如array_notification_classes = [“head.rb”,“hand.rb”]

array_notification_classes.each do |file_name|
  require file_name
  include file_name.split(".").first.classify.constantize
end

或上课:

class Notification
end

array_notification_classes.each do |file_name|
  require file_name
  Notification.class_eval do
    include file_name.split(".").first.classify.constantize
  end
end

答案 1 :(得分:0)

My array_notification_classes = ["head.rb", "hand.rb"]        

 array_notification_classes.each do |notification_class|
    notification_class = "Notifications::#{notification_class[0..-4].classify}".constantize
    notification_class_methods = notification_class.instance_methods
 end

这返回了Notifications :: Head,notifications :: Hand

中的所有实例方法