postgresql中的Rails json列不接受任何值,并在存储后调用时返回nil

问题描述 投票:0回答:1

我不确定一个简单的方法来解释最初的问题。我试图将嵌套的哈希类型的对象转换为可以通过活动记录存储在PG中的表单。我已经尝试过gem“nested-hstore”,但无法让它工作。尝试过序列化列等...对象本身是一个包含Objects的多维数组。我相信将MD数组转换为嵌套的哈希类型结构,其中键表示MD数组的组合索引直接对应于包含对象应该是最容易进行JSON转换的对象。该结构包含大量数据,因此我认为可能会抛弃PG / ActiveRecord,或者我可能缺少语法的一个重要方面。

以下是创建数据库条目然后测试其调用的代码:

Turn.create(turn: @counter, board: arrHash.to_json, games_id: 
            @@current_game.id)
turner = Turn.where(turn:@counter).first
puts turner.board  

这是迁移/表:

class CreateTurns < ActiveRecord::Migration[5.1]
  def change
    create_table :turns do |t|
      t.integer :turn
      t.json :board, default: "{}" 
      t.references :games, foreign_key: true, index: true

      t.timestamps
    end
  end
end

任何有关存储此策略的更好策略的帮助,或者我可能完全忽略的语法差异都将非常感激。谢谢!

ruby-on-rails json ruby postgresql hash
1个回答
0
投票

好的,是的,问题是Turn类的belongs_to属性中的变量不是复数形式,这样就可以保持正确保存的转弯。 to_json方法适用于保存到PG。感谢Anthony帮助我,我已经完成了我正在实施的功能。

© www.soinside.com 2019 - 2024. All rights reserved.