我有这样的代码:
module ModuleToPrepend
def perform(*args)
puts args
super
end
end
class Base
prepend ModuleToPrepend
end
class Child < Base
def perform(*args)
do_something(args)
end
end
Run Code Online (Sandbox Code Playgroud)
我正在寻找在每次Child.new.perform调用之前打印方法参数的解决方案。我想ModuleToPrepend在 class 中祖先列表的开头添加一个模块Base。我不想把它放在一个类中,Child因为有数百个。
我的代码返回这个:Child.ancestrors #=> [Child, ModuleToPrepend, Base]
我想要这个:Child.ancestrors #=> [ModuleToPrepend, Child, Base]
可以在 ruby 中完成吗?
我需要发送请求给我的Rails API中包含的关键:ids: [null, 1, 2, null, 3]。不幸的是,Rails削减了该数组中的所有null,因此params[:ids]返回了[1, 2, 3]。我需要数组中的那些空值。
如何防止Rails移除它们?我可以发送空字符串而不是null,但这不是很优雅。
我曾被告知要使用fetch(:key) { nil }而不是fetch(:key, nil)因为即使nil需要一些内存,只有在找不到密钥时才更好地评估它.
我不确定这是否正确.这个块也不会占用一些内存吗?有没有办法检查这个?