Преобразование модельного дерева OHM в структуру JSON
-
12-10-2019 - |
Вопрос
У меня есть дерево моделей OHM. В игре есть игроки, у игрока есть вещи. Полная информация ниже. По сути, когда я иду, чтобы отобрать структуру как JSON, я вижу ошибку кодирования:
Omethoderror (неопределенный метод `encode_json 'для #peece: 0x00000102b8dbb8):
Тем не менее, я могу вывести игрока и их кусочки без ошибок.
Player = Player.create(:name => "Toby")
game.player << player
player.pieces << Piece.create(:name => "Rook")
# works fine
logger.debug(player.to_hash.to_json)
# FAILS with the above error
logger.debug(game.to_hash.to_json)
Я предполагаю, что в гнездовании коллекций есть что -то, что вызывает проблему здесь.
Любые идеи?
class Game < Ohm::Model
collection :player, Player
def to_hash
super.merge(:players => players)
end
end
class Player < Ohm::Model
reference :game, Game
collection :pieces, Piece
attribute :name
def to_hash
super.merge(:name => name, :pieces => pieces)
end
end
class Piece < Ohm::Model
reference :player, Player
def to_hash
super.merge(:name => name)
end
end
Решение
Я обнаружил, что это работает вокруг проблемы:
class Player < Ohm::Model
def to_hash
super.merge(:name => name, :pieces => pieces.all)
end
end
Не связан с StackOverflow