如何显示所有_changed? ActiveRecord模型的方法

时间:2015-03-05 01:53:18

标签: ruby-on-rails ruby

我正在尝试为模型创建自定义方法,以评估某些变量是否已更改。如何从庞大的其他常规方法列表中获取这些方法的列表?

1 个答案:

答案 0 :(得分:0)

我发现如果我事先已经查询过模型表,我可以在Rails控制台中运行以下方法。如果您还没有这样做,这只会返回:attribute_changed?。在运行此方法之前尝试运行Model.first

Model.instance_methods.select { |method| method.to_s.include?("_changed?") }

或者对它们进行排序,只需添加sort:

Model.instance_methods.sort!.select { |method| method.to_s.include?("_changed?") }

这设法将我的一个模型从1000多种方法减少到不到50种。更容易阅读。