Làm thế nào tôi có thể nhận được từ một mô-đun tên lớp của lớp mô-đun được bao gồm?Lấy tên lớp học từ một mô-đun
module ActMethods
def some_method(*attr_names)
cls = self.class # this doesn't work
end
end
Làm cách nào để chuyển sang biến cls tên của lớp học với mô-đun này được tải?
Nên hoạt động! Có thể bạn cần self.class.name – khelll
Lưu ý rằng nếu lớp được mở rộng trong ẩn danh, sau đó in ra self.class hoặc self.class.name trả về trống, điều này có thể gây nhầm lẫn. Trường hợp này, bạn cũng nên kiểm tra self.class.superclass. –
'self.class' không hoạt động đối với tôi. 'self.class.name' trả về" Module ". Tôi nghĩ rằng nó đã làm với thực tế là các lớp học trong đó mô-đun của tôi được bao gồm thừa kế từ ActiveRecord :: Base (Rails 3.2.8) nhưng tôi không chắc chắn tại sao hoặc làm thế nào đó là can thiệp. –