我在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 endRails方法基于一个非常好的Ruby特性:const_missing.您可以编写const_missing方法或在Web上查找const_missing和sinatra的解决方案.