在找到 2 个与字符串与文本字段相关的 SO 问题后,我发现链接字段已经是文本:
create_table "answers", :force => true do |t|
t.string "text"
t.text "link"
为什么 Postgres 会抛出以下错误:
ActiveRecord::StatementInvalid: PG::Error: ERROR: value too long for type character varying(255)
我尝试了迁移change_column :answers, :link, :text, :limit => nil
,但我认为这没有任何作用。
编辑:所以,问题是架构说该字段是文本,但实际上它是字符串:
Answer.new.column_for_attribute('link').type
=> :string
修复它的最佳方法是什么?通过从模式重建数据库?通过将其更改为字符串然后返回文本?
Rails 3.2.2、Postgres 9、Heroku。