1

我的几个模型定义了液体方法,使用:

class MyModel < ActiveRecord::Base
  liquid_methods :created_at, :foo, :bar, :baz
end

如何获取模型的可用方法列表(我想在哈希或数组中)?我想将可用方法列表输出给在论坛帖子或电子邮件模板中使用它们的用户。

4

3 回答 3

2

这有效:

MyModel.new.to_liquid.methods - Liquid::Drop.new.methods
于 2012-09-13T13:39:06.527 回答
2

为自己节省不必要的实例化:

MyModel::LiquidDropClass.public_instance_methods - Liquid::Drop.public_instance_methods
# => [:foo, :bar, :baz] (or whatever your liquid methods are)

当你调用liquid_methods一个模型时,liquidLiquidDropClass在你的模型的命名空间中创建了这个类,并且它保存了液体方法。

于 2013-07-17T21:48:11.280 回答
-2

我不知道它是否会对液体方法有不同的行为,但你可以这样做:

MyModel.methods
MyMethod.new.methods

无论哪种方式,在类或实例上,您都可以调用.methods以获取符号数组,这些符号是在该类或实例上使用的有效方法。然后你可以做类似.methods.sort或之类的事情.methods.sort_by

于 2012-01-19T15:51:47.287 回答