yarn 的镜像地址我已经修改了,前三步都很快,就是到 [4/4] fresh packages 这一步就会卡住了,时间特别长。
这么一说,我去查查看,实在不行我就考虑本地编译在发布了。
而且好像发现 yarn install 执行了两次。
太棒了
应该是你的 sidekiq 会时不时挂掉,要查一下这个原因,并不是进入队列不执行。
你的 sidekiq 已经挂了,根本没有进程啊...这个进入队列只是等待执行,你的 sidekiq 进程已经没了。
可以这么理解
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
或者 Google: ruby http multipart post
"SELECT `users`.* FROM `users` LIMIT 20 OFFSET 0"
如果你贴的是源代码,那应该是你的 congtroller 里的代码里有空格。
哈哈,我都能想象到当时的场景,这个确实是很容易搞错。辛苦了。 “我们最后确认一遍信息吧,地址好像有点不对,是不是省略了几个字?”。一查地图,我擦。
我这里都可以,不会报错,不知道你是怎么使用的。
说得过去的,思路和我上面说的一样,你思考一个问题,在 irb 中,当前的作用域是什么?define_singleton_methon 时,这个 do block 可以访问的作用域是什么?我能告诉你的是,和上面的情况是一样的,他们在同一个作用域。基本上@laplace已经指出了问题了。文字比较生硬,可以忽略大家的语气。不用在意。
实际上,你搞混了一个东西。当 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
这本书里有讲到过。可以看一下。
用这个按摩,非常酸爽。rumbler roller
感觉只能考虑增加字段了,上面说的增加层数,以及每一个 node 不只是保存 parent id 而是保存整个 ancestor 链的 id ,
不在同一个文件夹的话,它就不知道这个文件在哪里啊,所以肯定找不到的。不是在 irb 里面执行 ruby
我试了下,可以装,不知道是不是网络问题。
可以看一下 rvm 或者 rbenv,用来管理 ruby 版本的,用起来也很简单,注意 rails 的版本是对 ruby 版本有要求的。
看上去是 ruby 版本也太旧了。这个是 mac 自带的吧,得升级一下。
我说的是,这个帖子里的代码格式,完全没法看。
rack 0.8.7 的版本太老了吧。
运行
gem list rack -r -a
看有哪些版本
或者就直接安装,不指定版本。
gem install rack
test.rb 保存在哪里了?在执行命令的同一个文件夹下吗?
把代码格式改了。