[英]class << self in ruby and its methods
我在轨道上的 ruby 中有一个 model ,使用下面的代码,它使用单例 class 定义。 此外,还有一些元编程逻辑。 但是,我不明白这段代码什么时候会调用。是在编辑下面指定的属性时吗?
class Product < ApplicationRecord
class << self
['cat_no', 'effort', 'impact', 'effect', 'feedback'].each do |attr|
define_method "update_#{attr}" do |pr, count, user_id|
pr.order=pr.cat_no
pr.idea=pr.description
pr.update("#{attr}"=>count,:last_modified_by=>user_id)
end
end
end
结束请帮忙。 谢谢
此代码生成五个方法,一个用于列表中的每个属性名称。 所有这些生成的方法都采用三个 arguments 并且基本上看起来像这样(我以impact
属性名称为例):
def self.update_impact(pr, count, user_id)
pr.order = pr.cat_no
pr.idea = pr.description
pr.update("impact" => count, :last_modified_by => user_id)
end
这意味着生成了五种方法,它们使用来自自身的一些数据以及count
和user_id
更新传入的pr
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.