如何检索'attr_accessor'属性名称?

时间:2011-08-16 14:38:36

标签: ruby-on-rails ruby ruby-on-rails-3 attributes attr-accessor

我正在使用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属性名称。 我该怎么做?

2 个答案:

答案 0 :(得分:5)

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

(MyClass.instance_methods - Object.instance_methods).grep(/^prefix/).sort

答案 1 :(得分:0)

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

相关问题