如何将具有自定义名称的模型加载到控制器中

时间:2010-07-18 22:52:12

标签: ruby-on-rails models

我正在尝试访问全局系统设置的模型。应该几乎每个控制器都加载它。问题是我找不到任何关于让铁路加载水坝的帮助。

如果这有帮助,该模型称为Config,有两列; 'key'和'value'

我来自PHP的背景。我记得codeigniter可以通过。

加载模型

$this->load->model('a_model_name');

我正在尝试加载模型的控制器与模型名称不同。

4 个答案:

答案 0 :(得分:2)

这里的问题实际上是模型的名称。其他Rails类使用Config - 请参阅Rails wiki上的list of reserved names

答案 1 :(得分:1)

Rails在需要时自动加载类。只要该类位于具有相同名称的文件中,并且它位于Rails查找类中的一个目录中,您只需使用该类就好像它已加载并且Rails将自动加载它

答案 2 :(得分:1)

您可以在ApplicationController中添加before_filter

before_filter :load_config

...
private
def load_config
  something
end

默认情况下,Rails中的所有控制器都继承自ApplicationController,因此所有控制器都会在开始时执行load_config方法。

顺便说一句,我非常喜欢rails-settings gem / plugin进行配置。这可能是你需要的东西。并且它在需要时加载数据,因此您不必在每个控制器中加载配置,但只需在需要某些值时,您就可以执行以下操作:

Settings.key

你得到你想要的东西。

答案 3 :(得分:0)

据推测,如果您想使用特定密钥加载一条信息,可以使用Config.find_by_key('the_key_you_want')来获取相关记录。

我不确定这是处理配置的最佳方式,但这实际上取决于系统的工作方式。

修改

在我发布回答之前没有看到你对问题的更新,似乎我误解了你的意思。在这里留下这个答案,如果它有用,Gareth的回答似乎是一个公平的答案。