我正在尝试使用 ruby on Rails 将数据类型保存到 postgres 数据库中的“字符串”列。假设我想将一个整数保存到该列。有没有什么方法可以序列化保存的数据,自动获取列的内容作为整数,而不必调用 'string_value'.to_i 函数?
首先,您必须意识到存储序列化信息可能会使过滤、排序和请求数据变得复杂。
但如果这是您的计划,那么最好的想法是存储与字符串不同的数据类型的列。
你可以这样做:
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