Access denied, Please sign in and make sure you have proper permission.
local_variable_get
和 local_variable_set
, 这下终于神器了...
#4 楼 @zgm
例如这种:
render "template", locals: {a: 3}
rails 里,局部变量其实通过 binding.eval "a=assigns[:a]"
设进去的,会慢一点而且由于运行时还需要 eval, 没法在整个应用加载完以后提升 $SAFE
等级。改成 binding.local_variable_set :a, 3
就完美了。
再例如这种写法:
get "/posts/:post_id" do
post_id # sinatra 里其实也是 eval 设进来的
end
也可以改成更快更少副作用的 local_variable_set
#5 楼 @luikore 原来如此。我一直认为 local_variable_get 和 local_variable_set 一直就有的,也没用过。刚看了一下,果然没有。
preview1 是现在最好还不要用,等 final release 的意思吗?
要不要直接升?虽然我还不懂什么魔法……可是升法很爽的耶!
#3 楼 @luikore
我靠~ 当初学习 instance_variable_set, class_variable_set 的时候,就很努力的想过,为什么没有这个 ...... 觉得实现起来,应该没啥瓶颈呀..... 最终还是出现了...
我很奇怪,为什么不早出现??