我使用dotenv gem在秘密文件中存储用于开发的环境变量。在我的计算机上升级 ruby 和 rails 后,gem 不再提取变量。为了尝试找出原因,在尝试了一段时间不同的选项后,我最终创建了两个相同的应用程序,只有两个不同之处。ruby 和 rails 版本。一个应用程序能够提取环境变量,另一个返回 nil。有什么建议?
我的设置
工作应用程序有
ruby "2.5.0"
gem 'rails', '~> 5.1.6'
Run Code Online (Sandbox Code Playgroud)
非工作应用程序有
ruby "2.6.5"
gem 'rails', '~> 6.0.0'
Run Code Online (Sandbox Code Playgroud)
到目前为止我尝试过的
Dotenv::Railtie.load到我的config/application.rb文件中。require: 'dotenv/rails-now'我的 Gemfile 以防它是因为另一个 gem 问题。require 'dotenv/load'到需要变量的文件中。'require dotenv/load'到config/application.rb文件中的各个位置我单独进行的每个更改都使用byebug在终端中检查变量是否已加载。每次变量仍然是nil.
有什么我想念的吗?有什么建议?还是我应该切换到另一个宝石?我听说figaro可能会做同样的事情,只是以前从未使用过。预先感谢您的帮助。
Mac OS:OSX 10.10.2
Ruby:2.2.1p85
Rails:4.2.0
我正在通过www.installrails.com在线关注“安装Rails”教程。遇到很多错误后终于通过了。我正处于创建示例应用程序的最后一步,该应用程序可以正常运行,然后运行服务器。现在,我遇到另一个错误。
这是我所看到的:
/Users/Work/.rvm/gems/ruby-2.2.1/gems/json-1.8.2/lib/json/ext/parser.bundle: [BUG] Segmentation fault at 0x00000000000418
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-darwin14]
-- Crash Report log information --------------------------------------------
See Crash Report log file under the one of following:
* ~/Library/Logs/CrashReporter
* /Library/Logs/CrashReporter
* ~/Library/Logs/DiagnosticReports
* /Library/Logs/DiagnosticReports
for more details.
-- Control frame information -----------------------------------------------
*A lot of information listed here*
-- Ruby level backtrace information ----------------------------------------
*A lot of information listed here*
-- Machine register context ------------------------------------------------
*A lot of …Run Code Online (Sandbox Code Playgroud) 因此,我浏览了该网站上的许多问题来回答这个问题,并且我相信我的代码是正确的,但它仍然无法正确验证。但我不明白为什么。
我正在尝试做的事情:
我在 Excel 中使用用户表单。我有一个日期输入框和一个日历选择器。当其中一个发生更改时,另一个也会更新。我试图验证输入框中输入的日期是否是有效日期并且在两年的时间范围内,如果是则更新日历选择器。
错误:
例如:
如果我输入 2/18/2016,它应该看到它是一个有效日期,晚于 oldDate,并且比 LateDate 更近。然后使用输入框的值更新日历选择器。但是,使用此代码,它总是重置输入框的值并给出未验证的消息。
代码:
Private Sub weekInput_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim tempDate
Dim oldDate
Dim lateDate
tempDate = weekInput.Value
oldDate = Date - 365
lateDate = Date + 365
'Doing this to try and error check if an invalid date is given. Doesn't work for some reason.
If IsDate(tempDate) And tempDate > oldDate And tempDate < lateDate Then
'Find date of that week's Monday
weekPicker.Value = weekInput.Value
Else
weekInput.Value …Run Code Online (Sandbox Code Playgroud)