gpt4 book ai didi

ruby-on-rails - 在 Rails 中覆盖实例方法

转载 作者:太空宇宙 更新时间:2023-11-03 17:51:04 25 4
gpt4 key购买 nike

<分区>

在覆盖某些赋值方法时,我发现如果我在 field_two 方法中使用隐式接收器,则不会调用第一个覆盖的方法 field_one。相反,似乎调用了默认的“field_one=”。

#controller
def do_something
@something=Something.first
@something.field_two="some_value"
end

class Something<ActiveRecord::Base

def field_one=(value)
puts "hi"
write_attribute(:field_g_five,value)
end


def field_two=(value)
field_one="whatever"
write_attribute(:field_g_one,value)
end

end

但是,如果我将接收者更改为显式,则会调用我覆盖的方法:

def field_two=(value)
self.field_one="whatever"
write_attribute(:field_g_one,value)
end

这是怎么回事?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com