如何在 ruby on Rails 中正确序列化 postgres 列

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

我正在尝试使用 ruby on Rails 将数据类型保存到 postgres 数据库中的“字符串”列。假设我想将一个整数保存到该列。有没有什么方法可以序列化保存的数据,自动获取列的内容作为整数,而不必调用 'string_value'.to_i 函数?

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

首先,您必须意识到存储序列化信息可能会使过滤、排序和请求数据变得复杂。

但如果这是您的计划,那么最好的想法是存储与字符串不同的数据类型的列。

你可以这样做:

class YourModel < ApplicationRecord
  # serialize
  serialize :your_column_name, Hash

  # Optional
  def set_value_as_hash(data_type, value)
    self.your_column_name = { datatype: data_type, value: value }
    save
  end

  # optional
  def get_value_from_hash
    value = self.your_column_name[:value]
    case self.your_column_name[:datatype]
    when 'Integer'
      value.to_i
    when 'String'
      value.to_s
    else
      value
    end
  end
end
© www.soinside.com 2019 - 2024. All rights reserved.