我的几个模型定义了液体方法,使用:
class MyModel < ActiveRecord::Base
liquid_methods :created_at, :foo, :bar, :baz
end
如何获取模型的可用方法列表(我想在哈希或数组中)?我想将可用方法列表输出给在论坛帖子或电子邮件模板中使用它们的用户。
我的几个模型定义了液体方法,使用:
class MyModel < ActiveRecord::Base
liquid_methods :created_at, :foo, :bar, :baz
end
如何获取模型的可用方法列表(我想在哈希或数组中)?我想将可用方法列表输出给在论坛帖子或电子邮件模板中使用它们的用户。
这有效:
MyModel.new.to_liquid.methods - Liquid::Drop.new.methods
为自己节省不必要的实例化:
MyModel::LiquidDropClass.public_instance_methods - Liquid::Drop.public_instance_methods
# => [:foo, :bar, :baz] (or whatever your liquid methods are)
当你调用liquid_methods
一个模型时,liquidLiquidDropClass
在你的模型的命名空间中创建了这个类,并且它保存了液体方法。
我不知道它是否会对液体方法有不同的行为,但你可以这样做:
MyModel.methods
MyMethod.new.methods
无论哪种方式,在类或实例上,您都可以调用.methods
以获取符号数组,这些符号是在该类或实例上使用的有效方法。然后你可以做类似.methods.sort
或之类的事情.methods.sort_by
。