rails_env - 执行代码的位置

时间:2016-03-09 19:13:02

标签: ruby-on-rails

如果我像这样运行一个rails控制台

library(dplyr)
a <- data.frame(a=(1:4), row.names=c("C12","CC12", "C1","12"))

tbl_df(cbind(a=a, b=rownames(a)))%>%
     filter(grepl("^C12", b))

并运行一些代码

Rails_env=uat

代码执行的地方,是服务器上的代码,还是我的本地代码,可能会有所不同?

1 个答案:

答案 0 :(得分:2)

它在shell运行的机器上执行。

RAILS_ENV env var的作用是告诉rails要加载哪些配置文件。因此,如果您使用RAILS_ENV = production,则会加载/config/environments/production.rb,并且还会使用production中的database.yml部分。

它不会神奇地打开SSH连接并在您的生产服务器上执行。试想一下,它会如何运作? Rails不知道生产服务器在哪里以及如何打开连接。

警告!

但是,由于它使用production中的database.yml部分,如果您愚蠢到实际在文件中编写生产服务器详细信息,它可以更改您的生产数据库(不要成为工具,使用DATABASE_URL env var)。