Rails应用程序全局定义

时间:2015-05-14 12:55:37

标签: ruby-on-rails ruby ruby-on-rails-4

您好我想要一些全局变量

例如对于松弛通知器,我想先启动它并重复使用它。

这类似的最佳做法是什么?

3 个答案:

答案 0 :(得分:3)

对您的变量使用$ sign,它变为全局变量。如下所示:

for (int z = 0; z < list.size() - 1; z++) {
            LatLng src = list.get(z);
            LatLng dest = list.get(z + 1);
            //
            lines.add(map.addPolyline(new PolylineOptions()
                    .add(new LatLng(src.latitude, src.longitude), new LatLng(dest.latitude, dest.longitude))
                    .width(2)
                    .color(Color.RED).geodesic(true)));
 }

它也应该在$slack-notifier 文件夹中初始化。为此,您可以在config / intializers / xyz.rb等config / intializers下的任何文件中创建

如果您不想在整个应用程序中更改此设置。然后你也可以创建一个常量。

作为惯例,您应该在intializers文件夹中创建此常量。

config/initializers

并且它内部应该是一个大写词。

config/intializers/initialize.rb

您可以在app中的任何位置使用此ANY_CONSTANT。

答案 1 :(得分:1)

在/config/initializers/global.rb

$slack-notifier

答案 2 :(得分:0)

从Ruby on Rails 4.2开始,您有config/secrets.yml个文件,您可以在其中存储您的设置。

您可以这样指定:

your_app: &your_app
  app_id: 123

并获取如下值:

Rails.application.secrets[:your_app]['app_id']

另一个选择是拥有env变量。看看this gem

使用dotenv,您可以在应用程序的根目录中创建一个名为.env的文件,并按如下方式存储您的全局设置:

APP_ID=123

要在app中获取它,你会这样做

ENV['APP_ID']

将此文件添加到.gitignore。这是存储应用设置的最安全方式。