由于Rails ENV变量应该只有字符串值,因此决定如何将ENV变量用于需要布尔逻辑的用例可能是个问题.例如,因为ENV变量有一个字符串值,它总是很简单,所以做这样的事情不会太好:
if ENV['MY_VARIABLE']
# do something
else
# do something else
end
Run Code Online (Sandbox Code Playgroud)
所以至少有两种方法可以完成上述事情:
初始化具有特定值的变量并检查它
if ENV['MY_VARIABLE'] == 'some string'
# do something
elsif ENV['MY_VARIABLE'] == 'some other string'
# do something else
end
Run Code Online (Sandbox Code Playgroud)
或者只是使用任何值初始化变量并检查它是否已初始化(代码可能完全符合我们的要求).
if ENV['MY_VARIABLE']
# do something
else
# do something else
end
Run Code Online (Sandbox Code Playgroud)
问题是什么选项更受欢迎,它们各自的优缺点是什么?
我正在尝试为在 Docker 中运行的 Rails 4 项目生成迁移。
到目前为止我尝试过的是
docker-compose run web rails g migration migration_name
docker-compose exec web rails g migration migration_name
Run Code Online (Sandbox Code Playgroud)
终端一直告诉我一切正常,迁移已成功创建等等。但我在我的项目中没有看到迁移文件。
但是如果我检查 Docker 中的项目文件
docker-compose exec web bash
ls -l db/migrate/
Run Code Online (Sandbox Code Playgroud)
我看到该文件确实在那里。
我使用的是 Mac OS X 如果有帮助的话