gpt4 book ai didi

ruby - Rails 3 NoMethodError(未定义方法 `unserialized_value' 为 "--- []\n":String):

转载 作者:数据小太阳 更新时间:2023-10-29 08:12:16 24 4
gpt4 key购买 nike

我正在使用 Rails 3.2.13 和 postgress。我仅在 production server

中遇到以下错误
NoMethodError (undefined method `unserialized_value' for "--- []\n":String):
app/controllers/blogs_controller.rb:159:in `content_generators'

我正在序列化数组以将其存储在数据库中。下面是代码。

Controller

class BlogsController < ApplicationController
def content_generators
@blog = Blog.find(params[:id])
@users = @blog.content_generators.map do |id|
User.find(id)
end
end
end

型号

class Blog < ActiveRecord::Base
serialize :post_access, Array
serialize :content_generators, Array
attr_accessible :post_access, :content_generators
end

迁移

class AddContentgeneratorsToBlog < ActiveRecord::Migration
def change
add_column :blogs, :content_generators, :string, :default => [].to_yaml
end
end

我已经使用序列化了。可以看到 post_access 被序列化了。这很完美。但是现在,当我添加另一列 content_generators 时,它开始中断。提前感谢您的帮助。

最佳答案

由于您使用的是 postgresql,我强烈建议您使用内置的数组功能:

# Gemfile
gem 'postgres_ext'

class MyMigration
def change
add_column :my_table, :that_array_column, :text, array: true, default: []
end
end

然后删除模型中的 serialize 调用即可。 PG 序列化数组在模型上的行为与 YAML 序列化数组完全相同,除了 db 支持对它们的一些查询方法。

关于ruby - Rails 3 NoMethodError(未定义方法 `unserialized_value' 为 "--- []\n":String):,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24759367/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com