作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我在 Sinatra 项目中组织我的模型很烦人。
假设我有 2 个模型:Post
和 Comment
, nn Post
模型,我必须调用Comment
模型。现在我有 <class:Post>': uninitialized constant Comment (NameError)
.
我知道在订购模型时会遇到问题,但如果我有很多模型怎么办? Rails 在要求模型等方面的方式是什么?
更新
我用这个代码来auto_load
我在 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
最佳答案
您应该将所有模型放在一个文件夹中,例如应用程序中的 lib
,然后您可以将其添加到 Sinatra 应用程序文件的顶部:
$: << File.dirname(__FILE__) + "/lib" # Assuming app.rb is at the same level as lib
require 'post'
require 'comment'
您应该组织您的代码,以便在加载所有模型声明之前不调用其他模型。
关于ruby-on-rails - 如何在 Sinatra 中组织模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6766482/
我是一名优秀的程序员,十分优秀!