У меня есть две модели, как показано ниже. Экземпляр 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
Если вы не можете вместить все в один файл, проект, возможно, слишком большой для синатра. В противном случае, как указано выше, вам нужно будет потребовать. – three
@Lukas_Skywalker Я не могу понять, где мне нужно «требовать». Теперь мне нужна модель «Цвет» в модели «Share» и наоборот. В 'api.rb' я потребовал их обоих, но получаю ту же ошибку. – simonbs
@three Я предполагаю, что могу поместить все в один файл, мне просто нравится структура, когда я держу все в отдельных файлах. – simonbs