ruby on rails迁移数据库错误

 

ActiveRecord::StatementInvalid (Mysql::Error: Data too long for column 'title' at row 1: INSERT INTO `tasks` (`updated_at`, `is_arrange`, `title`, `client`, `content`, `user_id`, `is_over`, `created_at`) VALUES('2010-08-15 07:27:13', '', '二恶', NULL, '而非', NULL, '', '2010-08-15 07:27:13')):
  app/controllers/task_controller.rb:53:in `create'
  app/controllers/task_controller.rb:52:in `create'
  C:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
  C:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
  C:/ruby/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
  C:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start'
  C:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
  C:/ruby/lib/ruby/1.8/webrick/server.rb:95:in `start'
  C:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `each'
  C:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `start'
  C:/ruby/lib/ruby/1.8/webrick/server.rb:23:in `start'
  C:/ruby/lib/ruby/1.8/webrick/server.rb:82:in `start'

Rendered rescues/_trace (157.0ms)
Rendered rescues/_request_and_response (78.0ms)
Rendering rescues/layout (internal_server_error)

 当出现时以上错误时,提示数据太长,一个原因是,字段的长度不够,另一个原因则是字符编码的问题

我遇到的这个情况是后一个原因,当输入中文时应该设置编码方式为utf8。

 

class CreateTasks < ActiveRecord::Migration
  def self.up
    create_table :tasks ,:options => "charset=utf8" 
 do |t|
      t.string :title
      t.integer :user_id
      t.text :content
      t.string :client
      t.string :is_evaluate
      t.string :is_over
      t.string :is_arrange
      t.timestamps
    end
  end

  def self.down
    drop_table :tasks
  end
end

 一定要把:options => "charset=utf8" 拼写对

 当你写错的时候,迁移数据库时并不报错,所以这种问题很难找原因。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值