
中的
attributeclass
Ohm::Model方法为命名属性定义访问器和更改器方法:
def self.attribute(name) define_method(name) do read_local(name) end define_method(:"#{name}=") do |value| write_local(name, value) end attributes << name unless attributes.include?(name)end因此,当您说时
attribute :foo,您可以免费获得以下方法:
def foo # Returns the value of foo.def foo=(value) # Assigns a value to foo.
您可以
send像这样调用mutator方法:
@ohm_obj.send((att + '=').to_sym, val)
如果您真的想说,
@ohm_obj[att] = val那么可以在
OhmObj课堂上添加以下内容:
def []=(att, value) send((att + '=').to_sym, val)end
您可能还希望访问器版本保持对称:
def [](att) send(att.to_sym)end
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)