0

我收到此错误:

 SQL (31.1ms)  INSERT INTO "read_marks" ("readable_id", "readable_type", "timestamp", "user_id") VALUES ($1, $2, $3, $4) RETURNING "id"  [["readable_id", nil], ["readable_type", "PublicActivity::ORM::ActiveRecord::Activity"], ["timestamp", Mon, 04 Mar 2013 03:29:52 UTC +00:00], ["user_id", 2]]
PG::Error: ERROR:  value too long for type character varying(20)

因为“可读类型”只包含 20 个字符,而我正在传递“PublicActivity::ORM::ActiveRecord::Activity”。

这与将 gem unread 与 public_activity 使用相同的问题(显然解决了问题但没有说明如何(参见他的底部更新))

4

2 回答 2

1

为什么不进行迁移并更改readable_type为更长的类型?像这样的东西:

change_column :read_marks, :readable_type, "varchar(255)"

或者如果你想走更长的时间:

change_column :read_marks, :readable_type, :text

由于您使用的是 PostgreSQL,因此使用“无限”长度类型(例如:text.

于 2013-03-04T03:52:20.867 回答
0

从您添加的链接:

UPDATE

AH! It was the readable_type field having a limit of only 20 that was truncating my class name. Now it works after I increased the size.

在数据库上,将“可读类型”列的大小增加到大于 20

于 2013-03-04T03:52:08.020 回答