我有兩個模型,如下所示。 Share
的實例可能有Color
的多個實例。我正在使用MongoMapper來管理這些模型。 當我做Share.create
,我發現了以下錯誤:MongoMapper和NameError:未初始化常量
NameError: uninitialized constant Color
誰能告訴我這是爲什麼?
/models/share.rb:
class Share
include MongoMapper::Document
key :shorten_id, String
key :name, String
many :colors, :class_name => "Color"
timestamps!
end
/models/color.rb:
class Color
include MongoMapper::Document
key :celcius, Float
key :hue, Float
key :saturation, Float
key :brightness, Float
belongs_to :share, :class_name => "Share"
timestamps!
end
這是我嘗試創建實例:
/路由/ API .rb:
require 'json'
class App < Sinatra::Base
register Sinatra::Namespace
namespace '/api' do
before do
protected!
end
get '/shares' do
content_type 'application/json'
Share.all.to_json
end
post '/share' do
@share = Share.create
@share.save
end
end
end
如果你不能把所有東西都放到一個單獨的文件中,你的項目可能對sinatra來說太大了。否則如上所述,你需要。 – three
@Lukas_Skywalker我找不到需要'需要'的地方。現在我已經在'Share'模型中需要'Color'模型,反之亦然。在'api.rb'我已經要求他們兩個,但我得到相同的錯誤。 – simonbs
@three我想我可以把所有東西都放到一個單獨的文件中,當我把所有東西都放在單獨的文件中時,我更喜歡這個結構。 – simonbs