В настоящее время я работаю над проектом Rails с использованием Mongoid. У меня есть модель Game
, которая содержит много GamePlayers
. К сожалению, я не могу понять, как создавать новые игры. Я могу создать игру без игроков, используя Game.create
, но когда я пытаюсь создать игроков для игры, она дает синтаксическую ошибку. Я пробовал искать в Интернете, но я не смог найти ничего, что могло бы быть связано с проблемой.Mongoid - Как создать документ со встроенными документами?
Вот мой код создания в GamesController
.
def new
@game = Game.create(
epoch: 1,
turn: 0,
auction_turn: -1,
auction_type: -1,
sun: 1,
ras: 0,
auction_track: []
game_players: [ #doesn't work
{ suns:[9,6,5,2]
}
]
)
redirect_to :action => "show", :id => @game._id
end
Которая производит ошибку
/home/<redacted>/Ra/ra_server/app/controllers/games_controller.rb:36: syntax error, unexpected tIDENTIFIER, expecting ')'
game_players: [ #doesn't work
Вот мои модели
class Game
include Mongoid::Document
field :epoch, type:Integer
field :turn, type:Integer
field :auction_turn, type:Integer
field :auction_type, type:Integer
field :sun, type:Integer
field :ras, type:Integer
field :auction_track, type:Array
embeds_many :game_players
end
class GamePlayer
include Mongoid::Document
field :score, type:Integer
field :bid, type:Integer
field :suns, type:Array
field :next_suns, type:Array
field :pharaohs, type:Integer
field :niles, type:Integer
field :floods, type:Integer
field :gods, type:Integer
field :gold, type:Integer
field :civilizations, type:Array
field :monuments, type:Array
embedded_in :game
end
Как добавить запятую после auction_track: []? – Rebitzele
@Rebit Спасибо, я не могу поверить, что пропустил это. В любом случае, похоже, сейчас он работает. – Antimony
Несомненно! Я просто написал это как официальный ответ, чтобы люди это увидели. – Rebitzele