如果我把它放在我的模型中:
class Sample < ApplicationRecord
enum level: [:one, :two, :three].map{|e| [e,e]}.to_h
本节
[:one, :two, :three].map{|e| [e,e]}.to_h
只会执行一次?何时首次加载模型?或者它会被执行多次?
答案 0 :(得分:1)
一旦加载模型。在Ruby中,类定义只是代码,因此示例中的enum
是方法调用,[:one, :two, :three].map{|e| [e,e]}.to_h
是参数。
调用enum
的最终结果是,将在类上定义其他几个方法,允许您根据docs执行sample.two?
之类的操作。
如果您想知道这是怎么发生的,请阅读source code on Github。