Ruby on rails 火车站在哪里?

Ruby on rails 火车站在哪里?,ruby-on-rails,Ruby On Rails,我在看这篇关于rake命令的文章,但不知道RAILS_ENV在哪里。那是在某个特定的文件中吗 db:create Creates the database for the current RAILS_ENV environment. If RAILS_ENV is not specified it defaults to the development and test databases. 它是您可以通过在执行命令之前传递它来设置的环境变量 RAILS_ENV=production rake

我在看这篇关于rake命令的文章,但不知道RAILS_ENV在哪里。那是在某个特定的文件中吗

db:create Creates the database for the current RAILS_ENV environment. If RAILS_ENV is not specified it defaults to the development and test databases.

它是您可以通过在执行命令之前传递它来设置的环境变量

RAILS_ENV=production rake db:migrate
您还可以通过在命令之前传递其他一些环境变量来设置它们

MAIL_USERNAME=user MAIL_PASSWORD=password rails server
或者您可以将它们导出到shell

export MAIL_USERNAME=user
export MAIL_PASSWORD=password
rails server

还有一个名为gem的工具,它可以帮助您轻松设置env变量,方法是将它们保存在一个
.env
文件中,该文件不会被推到
git
或任何您使用的SVN上。据我所知,这个“RAILS\u env”看起来很像环境变量,可能是操作系统级别的(比如在*uix环境下,使用env检查其值)或者它特定于可能在配置文件(.property或else)中设置的运行时。

RAILS\u ENV是RAILS环境,即开发、生产或登台

您可以使用
RAILS\u ENV
为不同的环境运行命令,如:

RAILS_ENV=production rake db:migrate #runs migration in production env

RAILS_ENV=test rake db:migrate #runs migration in test env

默认情况下,环境是开发。

RAILS\u ENV
只是一个环境变量,在shell或操作系统本身中设置(或在调用流程时设置)

环境变量是一组动态命名值,可以 影响在计算机上运行进程的行为方式。
它们是流程运行环境的一部分。例如,一个 正在运行的进程可以查询
TEMP
环境变量的值 查找存储临时文件的合适位置,或
主页
USERPROFILE
变量,以查找 正在运行进程的用户。

ENV[“RAILS\u ENV”]
只包含一个字符串,如“production”、“development”或“test”。这将告诉
/config/environments
中的Rails要加载,以及
database.yml
中的哪个散列键要用于数据库

例如,如果
ENV[“RAILS\u ENV”]=“foo”
RAILS将:

  • 加载
    /config/environments/foo.rb
  • 在database.yml中查找键
    foo
  • Rails.env.foo?
    将为真
因此,Rails环境的概念与一般的计算概念有所不同——Rails环境是一个更广泛的术语,用于一组设置和一个数据库,用于不同的目的,如自动化测试或生产

另见:


RAILS\u ENV这只是一个环境变量的名称。因此,它可以在运行任何rake任务或rails命令时使用。比如:

RAILS_ENV=test rails c
但是您会想知道这个env变量如何在Rails中使用,这里是:


这意味着Rails更愿意使用Rails_ENV来决定当前的环境。

所以Rails_ENV被用作一个容器,供您构建一个数据库来进行测试?那么您可以使用多个RAILS_ENV来尝试在其中包含不同的表?或者您会继续在您的开发环境中删除和重新设置表吗?这和您的想法不完全一样。。但是是的,您可以根据需要拥有不同的环境,如
test
demo
development
production
您也可以创建您想要的任何环境,只需确保您拥有
config/environments/#{environment\u name}.env
,这样每个env中的数据库都会不同?是的,您需要在
database.yml
中指定数据库名称environment-wise,如何准确地设置ENV-vars取决于所使用的shell和操作系统。不过,大多数操作系统(甚至windows)都有环境变量。我们正在生产中。我们的应用程序运行生产。但如果我们回显RAILS_ENV,它是空的。这意味着它应该默认为开发。但我们的应用程序真的运行生产。怎么会?