2

我正在使用 Ruby on Rails 3.0.9,我想检索attr_accessor以特定字符串开头的所有属性名称。那是,

...在我的模块中,我有:

attr_accessor :prefix_attribute_name1,
              :prefix_attribute_name2,
              :prefix_attribute_name3,
              ...
              :attribute_name1,
              :attribute_name2,
              ...

我想检索以字符串attr_accessor开头的所有属性名称:prefix我怎样才能做到这一点?

4

2 回答 2

5

通常,attr_accessor只创建访问器方法,并没有任何特定的钩子用于这样的反射。如果你需要这样的东西,你可以写一个扩展,attr_accessor或者alias_method_chain你可以这样做:

(MyClass.instance_methods - Object.instance_methods).grep(/^prefix/).sort
于 2011-08-16T14:44:18.857 回答
0

您可以使用 YourClass.instance_methods.select{|i| 获取它 i.to_s =~ /prefix_/}。

于 2011-08-16T14:44:42.130 回答