繁体   English   中英

class << self in ruby 及其方法

[英]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

这意味着生成了五种方法,它们使用来自自身的一些数据以及countuser_id更新传入的pr

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM