-
for 结合 Proc 使用时的作用域问题 at 2018年03月02日
可以这么理解
for i in [1,2,3,4] do end puts i #=> 4
这里的 i 不是 local variable,实际上相当于定义了一个 i 变量,它的作用域和 for 同级。
但是下面的 i 就是 local variable,它的作用域不在 block 外
[1,2,3,4].each do |i| end puts i #=> NameError: undefined local variable or method `i' for main:Object
-
如何用 Ruby 写一个图片上传到服务器的方法 at 2018年02月28日
或者 Google: ruby http multipart post
-
Rails 在 Model 中写一个方法,但 debug 调试的时候,发现不进入方法体里面?? at 2017年10月30日
贴一下具体的代码吧。 定义这个方法的地方以及调用这个方法的地方。
-
MongoDB 批量查询性能优化问题 at 2017年10月11日
- 就是上面你使用的,查询数据库的时候,可以直接传数组,没必要一条一条查。
- 分页可以直接用数据库做,不要全部查出来再分页吧。 比如下面的语句
"SELECT `users`.* FROM `users` LIMIT 20 OFFSET 0"
-
为什么在 controller 和 erb 中调用 where 的 first 返回类型不一样 at 2017年09月16日
如果你贴的是源代码,那应该是你的 congtroller 里的代码里有空格。
-
关于订正大会地址到 杭州海外海” 皇冠 “大酒店,订错酒店的解决方法 at 2017年09月13日
哈哈,我都能想象到当时的场景,这个确实是很容易搞错。辛苦了。 “我们最后确认一遍信息吧,地址好像有点不对,是不是省略了几个字?”。一查地图,我擦。
-
lib 下如何使用 rails 里面相关方法 at 2017年09月12日
我这里都可以,不会报错,不知道你是怎么使用的。
-
Ruby 作用域问题,应该如何访问域外的实例方法 at 2017年07月23日
说得过去的,思路和我上面说的一样,你思考一个问题,在irb中,当前的作用域是什么?define_singleton_methon 时,这个do block可以访问的作用域是什么?我能告诉你的是,和上面的情况是一样的,他们在同一个作用域。基本上@laplace已经指出了问题了。文字比较生硬,可以忽略大家的语气。不用在意。
-
Ruby 作用域问题,应该如何访问域外的实例方法 at 2017年07月23日
实际上,你搞混了一个东西。当
hello
是 字符串与def hello; end
是完全两个不同的东西。 我认为你指的hello
是这个意思。class A hello = "test" def hello_again end B = Class.new do define_singleton_method :hi do hello end end end class C < A def say_hi B.hi end end
基于这个假设。我讲一下为什么字符串
hello
可以被访问到。因为解释器在读取这段代码时,当读到
define_singleton_method
,此时do
block 是可以访问当前的作用域的。 那么当前的作用域到底是什么?并不是class A
内部的作用域,而是,正在定义class A
的作用域,也可以理解为Class.new do ; end
这个作用域。 本来,如果你没有在B.hi
中使用hello
的话,这个hello
在加载完这段代码后hello
这个变量就释放了(有可能有理解的错误),因为除了在定义 A 的代码里用了一下,其他地方就再也没有绑定过这个变量了,但是你定义了B.hi
,把这个变量又和B.hi
绑定到一起了。所以hello
这个变量没有被释放掉。上面解释了为什么字符串
hello
可以被访问。上面的这些东西在
The Ruby Programming Language
这本书里有讲到过。可以看一下。 -
大家有被颈椎病困扰的吗? at 2017年07月19日
用这个按摩,非常酸爽。rumbler roller