我在Sinatra项目中有一个非常适合我的模型. 假设我有2个模型:Post和Comment,nn Post模型,我必须调用Comment模型.现在我有 class:Post‘:uninitialized constant Comment(NameError). 我知道它在订购模型的
假设我有2个模型:Post和Comment,nn Post模型,我必须调用Comment模型.现在我有< class:Post>‘:uninitialized constant Comment(NameError).
我知道它在订购模型的要求时存在问题,但是如果我有很多模型呢?什么是Rails方式需要模型等?
UPDATE
我使用此代码在Sinatra / Rack / Grape应用程序中自动加载我的模型.此代码应位于代码的顶部,即引导文件中.
models = File.join(File.dirname(__FILE__), 'app', 'models') # path to your models
$LOAD_PATH << File.expand_path(models)
# Constent Missing for requiring models files
def Object.const_missing(const)
require const.to_s.underscore
klass = const_get(const)
return klass if klass
end
Rails方法基于一个非常好的Ruby特性:const_missing.您可以编写const_missing方法或在Web上查找const_missing和sinatra的解决方案.
