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)

「readable_type」は 20 文字しか保持できないため、「PublicActivity::ORM::ActiveRecord::Activity」を渡しています。

これは、 public_activity で未読の gemを使用するのと同じ問題です(問題を解決したようですが、方法については言及していません (彼の一番下の UPDATE を参照してください))。

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.

データベースで、列「readable_type」のサイズを 20 より大きいサイズに増やします。

于 2013-03-04T03:52:08.020 に答える