在我的 Ruby on Rails 应用程序上,我不断收到以下有关Heroku Redis Premium 0 附加组件的错误:
OpenSSL::SSL::SSLError:SSL_connect 返回=1 errno=0 state=error:证书验证失败(证书链中的自签名证书)
Heroku Redis文档提到我需要在 Redis 客户端的配置中启用 TLS 才能连接到 Redis 6 数据库。为了实现这一点,我已经阅读了redis-rb上的 SSL/TLS 支持文档。我的理解是;我需要分配ca_file,cert并key为Redis.new#ssl_params. 问题是如何为 Redis 或通过 Heroku 上的 Sidekiq 设置这些?
更新 3:Heroku 支持提供了解决问题的答案。
更新 2:创建 Heroku 支持票和等待响应。
更新 1:询问Sidekiq 的 Github 问题,并被建议去写 Heroku 支持。当我得到答案时,会更新这个问题。
我已经验证了当附加组件是以下任一情况时,该应用程序确实可以工作:
版本:
我试图开始psql但得到了
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Run Code Online (Sandbox Code Playgroud)
当我使用时postgres -D /usr/local/var/postgres,出现以下错误:
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.63.dylib
Referenced from: /usr/local/bin/postgres
Reason: image not found
[1] 2559 abort postgres -D /usr/local/var/postgres
Run Code Online (Sandbox Code Playgroud)
快速搜索libicui18n.63.dylib显示我需要icu4c版本63的lib。但是brew list icu4c说我拥有版本64.2。
我都尝试过brew install icu4c 63,brew install icu4c@63但没有运气。
有人可以帮忙吗?提前致谢。
每当我使用时rvm install x.x.x,即使成功安装,我也会收到此警告:
No binary rubies available for: osx/10.12/x86_64/ruby-2.4.0.
Continuing with compilation. Please read 'rvm help mount' to get more
information on binary rubies.
Run Code Online (Sandbox Code Playgroud)
我试着读rvm help mount,但这超出了我的知识范围.
有人能用简单的英语解释这个警告吗?谢谢!
每当我尝试跑步时
bundle exec puma -C config/puma.rb --port 5000
Run Code Online (Sandbox Code Playgroud)
我不断得到
bundler: failed to load command: puma (/Users/ogirginc/.asdf/installs/ruby/2.7.2/bin/puma)
Errno::EADDRINUSE: Address already in use - bind(2) for "0.0.0.0" port 5000
Run Code Online (Sandbox Code Playgroud)
我已经尝试过任何我能想到或读到的东西。这是列表:
1. 重启 Mac。
2.找到PID并杀掉。
lsof -wni tcp:5000COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ControlCe 6071 ogirginc 20u IPv4 0x1deaf49fde14659 0t0 TCP *:commplex-main (LISTEN)
ControlCe 6071 ogirginc 21u IPv6 0x1deaf49ec4c9741 0t0 TCP *:commplex-main (LISTEN)
Run Code Online (Sandbox Code Playgroud)
杀与sudo kill -9 6071.
当我杀死它时,它会使用新的 PID 重新启动。
> lsof -wni …Run Code Online (Sandbox Code Playgroud) 每当有人访问该网站时,Rails应用程序中的初始化程序是否都会运行?
例如,如果我的服务器在德克萨斯州上午10点启动,并且有人在下午1点从纽约访问我的网站,并且有人在晚上10点从洛杉矶访问,那么当来自纽约的人们在轨道应用程序中运行初始化器时和洛杉矶访问,或者只在我在德克萨斯州启动服务器时才运行初始化程序?
我问的原因是因为我在初始化文件中使用case表达式来根据访问应用程序的时间来更改电子邮件设置.只有在有人访问该网站时才会运行初始化程序,这才有意义.如果它们仅在服务器启动时运行,那么它只会是一个案例......
如果这不是正确的地方,或者如果初始化程序仅在德克萨斯州启动服务器时运行(例如),那么您将在何处放置此代码?
case
when Time.now.hour == 0
ActionMailer::Base.smtp_settings = {
:user_name => "blahblah@example.com",
:password => "blahblah",
:address => "smtp.examplel.com",
:port => 25,
:tls => true
}
when Time.now.hour == 1
ActionMailer::Base.smtp_settings = {
:user_name => "blah@example.com",
:password => "eatshit",
:address => "smtp.example.com",
:port => 25,
:tls => true
}
end
Run Code Online (Sandbox Code Playgroud) 我使用 iPhone 模拟器进行开发,大部分 ui 组件都是使用 swift 编写的。有没有一种简单的方法可以在暗模式和亮模式之间切换以进行测试?
我发现从设置中启用和禁用暗模式非常耗时。这个快捷方式将加快我对暗模式和亮模式的可测试性。
当我开始一个新的终端会议时,我会继续
Error: No available formula with the name "homebrew/php/php56"
Please tap it and then try again: brew tap homebrew/php
Run Code Online (Sandbox Code Playgroud)
警告.我试过brew tap homebrew/php但得到了
Error: homebrew/php was deprecated. This tap is now empty as all its formulae were migrated.
Run Code Online (Sandbox Code Playgroud)
此外,试图brew doctor,brew cleanup,brew update- brew upgrade但没有运气.有没有人能解决这个恼人的警告?
我通常使用Github作为我的dotfiles.对于我正在处理的gem,我需要为我添加一些私钥.zshrc.
有没有办法让我在我的文件中包含另一个文件.zshrc,我可以将环境变量存储在包含的文件中?
我的控制器中有以下方法:
def create
p_attr=params[:upload]
p_attr[:upload] = params[:upload][:upload].first if params[:upload][:arraydb].class == Array
@upload = Upload.new(p_attr)
respond_to do |format|
if @upload.save
@arraydb.process_name
end
end
end
Run Code Online (Sandbox Code Playgroud)
在模型中我有另一种方法,我可以处理刚刚保存的上传:
def self.process_name
update_attributes(:user_id => current_user.id)
update_attributes(:defined => "no")
end
Run Code Online (Sandbox Code Playgroud)
它给了我一个错误,该方法process_name没有定义Upload
问题是什么?如何从控制器更新模型中刚刚保存的文件的属性?提前致谢.
我想datetime_field_tag在我看来有一个默认值:
=form_tag form_path, method: :get do
=label_tag :sign_up_at, 'Sign up before:'
=date_field_tag :sign_up_at, (params[:sign_up_at] ||
Time.zone.today.strftime("%Y-%m-%d"))
=label_tag :last_seen_at, 'Last seen after:'
=datetime_field_tag :last_seen_at, (params[:last_seen_at] ||
Time.zone.now.strftime("%d-%m-%YT%H:%M"))
=submit_tag 'Filter', class: 'btn-info'
Run Code Online (Sandbox Code Playgroud)
这导致value在 HTML中有一个标签:
<input type="datetime-local" name="last_seen_at" id="last_seen_at" value="22-05-2017T16:34">
Run Code Online (Sandbox Code Playgroud)
我的猜测是,我在解析Time. 请问有人可以帮忙吗?谢谢!
根据@deephak 的回答更新。