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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postgresql中的Rails json列不接受任何值,并在存储后调用时返回nil相关的知识,希望对你有一定的参考价值。

我不确定一个简单的方法来解释最初的问题。我试图将嵌套的哈希类型的对象转换为可以通过活动记录存储在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

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

答案

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

以上是关于postgresql中的Rails json列不接受任何值,并在存储后调用时返回nil的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL“列不存在”但它确实存在

PostgreSQL:在 WHERE 子句中搜索时列不存在

错误:关系列不存在 PostgreSQL,无法运行插入查询

rails PG undefined列不存在用于索引创建

Rails 3.2 中的 PostgreSQL DATALINK 类型

postgresql按工作日选择,包括rails中的空记录