如何在rails应用程序开始之前执行访问数据库的ruby代码?

时间:2011-08-09 15:25:43

标签: ruby-on-rails ruby activerecord

我想知道如何在rails应用程序开始之前执行一些ruby代码。我需要 有权访问数据库,并能够为要访问的视图设置一些变量。

感谢。

3 个答案:

答案 0 :(得分:1)

我认为,更好的方法是不使用数据库,而是在 application_root / config 文件夹中创建配置文件,例如 app_config.yml ,然后使用 environment.rb 文件中的以下行加载它。

APP_SETTINGS = YAML.load_file("#{Rails.root.to_s}/config/app_config.yml")

您的 app_config.yml 文件如下所示

appname: something.com
appsettings: something...
appvar: something...

您可以从应用程序的任何位置访问这些配置变量:

APP_SETTINGS['appname']

等等。

在启动rails服务器时加载此 yml 文件。因此,如果您对此文件进行任何更改,则应重新启动服务器。

答案 1 :(得分:0)

如果您想要设置视图可以立即使用的内容,请尝试将代码粘贴在db/seeds.rb中。在这里你应该放置你可能需要的任何对象的创建,比如参考数据(例如填充Countries表或设置一些用户角色)。

重置数据库时,或通过rake db:reset自动运行。

答案 2 :(得分:0)

单独使用activerecord设置一些常量。

http://weblog.jamisbuck.org/2005/10/3/easy-activerecord-scripts