小编use*_*176的帖子

尝试运行 cap deploy:restart 时为 nil 的未定义方法 []

我有一个 Rails 5.2 应用程序,并且使用上限 3.4.1 我们突然收到这个奇怪的错误:

    [b35efe76]  Phusion Passenger(R) 6.0.8
     DEBUG [b35efe76] Finished in 0.305 seconds with exit status 0 (successful).
    (Backtrace restricted to imported tasks)
    cap aborted!
    SSHKit::Runner::ExecuteError: Exception while executing as deploy@host.com: undefined method `[]' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

尝试缩小范围,尝试重新启动时会发生这种情况,因为这是失败的行:

cap production deploy:restart
Run Code Online (Sandbox Code Playgroud)

问题是,我如何去寻找哪个文件试图在 nil 值上调用 [] ?使用 --trace 运行 cap 没有任何价值,因为它只会给我内部错误 - 我的代码中没有任何内容。基本上,我如何找出什么是零?

还有一个线索,目前,我有一堆服务器,如果我在服务器 A 上运行 cap restart 命令,它会重新启动,在服务器 B 上,它会抛出这个错误,所以我猜服务器 A 上有一个环境变量,但是不是 B,但错误太不透明了,我不知道从哪里开始。

感谢您的帮助,凯文

capistrano

10
推荐指数
1
解决办法
438
查看次数

monbodb 充斥着控制台,从独立到独立的变化

我刚刚升级到 mongodb 4.4.1,控制台每隔一秒就会充斥着这些消息:

D, [2020-11-03T03:28:32.885772 #24798] DEBUG -- : MONGODB | There was a change in the members of the 'Single' topology.
D, [2020-11-03T03:28:42.875739 #24798] DEBUG -- : MONGODB | Server description for localhost:27017 changed from 'standalone' to 'standalone' [awaited].
D, [2020-11-03T03:28:42.876668 #24798] DEBUG -- : MONGODB | There was a change in the members of the 'Single' topology.
D, [2020-11-03T03:28:42.888517 #24798] DEBUG -- : MONGODB | Server description for localhost:27017 changed from 'standalone' to 'standalone'.
Run Code Online (Sandbox Code Playgroud)

任何人都知道为什么会发生这种情况,如果很糟糕,以及如何停止?

mongodb

6
推荐指数
1
解决办法
839
查看次数

模式中的签名板不起作用(墨水与鼠标偏移)

我正在尝试在引导模式中使用签名板,我在 div 中有一个画布:

<div class="modal-body">
    <div class='signature-container' >
        <canvas id="signature"></canvas>
        </canvas>
</div>
Run Code Online (Sandbox Code Playgroud)

在初始化时,我执行(coffeescript):

canvas = $("canvas#signature")[0]
  signature_pad = new SignaturePad(canvas, backgroundColor: 'rgb(255, 255, 255)')
Run Code Online (Sandbox Code Playgroud)

我的画布 css 是(因为我希望画布填充 div)

宽度:100%;高度:100%;

一切正常,但“墨水”偏离了鼠标指针。当我第一次单击时,初始墨迹出现在鼠标指针的右侧和下方。鼠标移动得越远,垂直偏移就越远,与水平方向相同(即偏移看起来呈线性缩放)。我尝试在演示中实现调整大小功能,但 chrome 将 offsetWidth 计算为 0 并且画布只是缩小到 0x0。

有人知道我做错了什么吗?

javascript signaturepad

5
推荐指数
1
解决办法
3427
查看次数

以编程方式禁用rails验证?

我正在进行批量插入,我自己跟踪唯一列,以避免m log n插入成本.有没有办法在代码中禁用生命中的验证方法?

validation ruby-on-rails

4
推荐指数
1
解决办法
4011
查看次数

Bullet gem 未从 Rails 控制台记录

我正在尝试使用 Bullet gem 来分析一些 mySql 查询。在 config/environments/development.rb 中,我启用它:

config.after_initialize do
  Bullet.enable = true
  Bullet.bullet_logger = true
  Bullet.rails_logger = true
  Bullet.raise = true
end
Run Code Online (Sandbox Code Playgroud)

然后我从控制台运行一个简单的导入命令:

Item.import_file "import/file1.txt"
Run Code Online (Sandbox Code Playgroud)

log/bullet.log 为空。我看到所有 mysql 查询都在控制台中进行,只是没有输出。子弹在 Rails 控制台中工作吗?如果是这样,知道我做错了什么吗?

谢谢,凯文

mysql ruby-on-rails

4
推荐指数
1
解决办法
2554
查看次数

Rails 5,Capistrano 3如何在部署后清除缓存

我想执行相当于

Rails.cache.clear
Run Code Online (Sandbox Code Playgroud)

部署后,但无法使其工作。这是我在deploy.rb文件中的尝试

namespace :deploy do
    after :restart, :clear_cache do
        on release_roles(fetch(:assets_roles)) do
            within release_path do
                with rails_env: fetch(:rails_env) do
                    Rails.cache.clear
                end
            end
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

SSHKit::Runner::ExecuteError: Exception while executing as deploy@hostname.com  uninitialized constant Rails
Run Code Online (Sandbox Code Playgroud)

如果不是这个,那又是什么?

感谢您的帮助,凯文

更新:

这是正确的语法:

namespace :deploy do
    task :clear_cache do
        on roles(:app) do |host|
            with rails_env: fetch(:rails_env) do
                within current_path do
                    execute :rake, "cache:clear"
                end
            end
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

capistrano ruby-on-rails

1
推荐指数
1
解决办法
3003
查看次数

用于声明lvalue/rvalue =运算符的Ruby语法

我试图在Ruby中构建一个equals函数.我想做的就是这样,假设我们有一个名为A的类:

class A
    attr_accessor :secret_datum

    def public_datum
        return secret_datum
    end

    def public_datum= what
      secret_datum = what
    end
end
Run Code Online (Sandbox Code Playgroud)

我想要的主要是建立一个更复杂的幕后功能,具体取决于public_datum是用作左值还是右值,但我上面的代码不起作用:

2.5.0 :027 > a = A.new
 => #<A:0x00007fc2293ec338> 
2.5.0 :028 > a.public_datum = 7
 => 7 
2.5.0 :029 > a.public_datum
 => nil 
Run Code Online (Sandbox Code Playgroud)

声明这样一组函数的正确语法是什么?

ruby

0
推荐指数
1
解决办法
50
查看次数

Ruby 散列引用

我想要一个单一的目标,然后该目标可以在散列中修改。

target = [1,2,3]
hash = {1 => target, 2 => target}
Run Code Online (Sandbox Code Playgroud)

现在,我希望能够 a) 更改目标并让哈希自动更新或 b) 更改哈希的 1 并让它自动更改哈希的 2。两者都不起作用:

target = [6,7,8]
target
Run Code Online (Sandbox Code Playgroud)

输出:

{1=>[1, 2, 3], 2=>[1, 2, 3]}
Run Code Online (Sandbox Code Playgroud)

方案二:

hash[1] = [6,7,8]
Run Code Online (Sandbox Code Playgroud)

输出:

{1=>[6, 7, 8], 2=>[1, 2, 3]}
Run Code Online (Sandbox Code Playgroud)

所以我发现当你在 Ruby 的散列中创建一个 subhash 一个右值时,它会在将左值设置为等于它之前复制 subhash。我想要的是 Ruby 不这样做。这可能吗?

谢谢,凯文

ruby hash pointers

0
推荐指数
1
解决办法
87
查看次数