Ruby on rails 3 为“远程ip”列上的“字符串”类型插入的二进制数据?
为列上的Ruby on rails 3 为“远程ip”列上的“字符串”类型插入的二进制数据?,ruby-on-rails-3,sqlite,Ruby On Rails 3,Sqlite,为列上的字符串类型插入的二进制数据是什么意思… 在SQLite表中记录远程ip地址时,调试控制台中有一条消息: Started GET "/test?name=abcde" for 127.0.0.1 at 2012-10-16 18:02:01 +0800 Processing by TestController#index as HTML Parameters: {"name"=>"abcde"} (0.1ms) begin transaction Binary data
字符串类型插入的二进制数据是什么意思…
在SQLite表中记录远程ip地址时,调试控制台中有一条消息:
Started GET "/test?name=abcde" for 127.0.0.1 at 2012-10-16 18:02:01 +0800
Processing by TestController#index as HTML
Parameters: {"name"=>"abcde"}
(0.1ms) begin transaction
Binary data inserted for `string` type on column `query`
Binary data inserted for `string` type on column `remote_ip`
SQL (0.6ms) INSERT INTO "requests" ("controller", "query", "remote_ip") VALUES (?, ?, ?) [["controller", "test"], ["query", "name=abcde"], ["remote_ip", "127.0.0.1"]]
(2.5ms) commit transaction
该表定义如下:
class CreateRequests < ActiveRecord::Migration
def change
create_table :requests do |t|
t.string :controller, :limit => 128
t.string :remote_ip, :limit => 128
t.string :query, :limit => 2048
end
end
end
这意味着您的Ruby字符串使用一些非默认编码进行标记:
(见附件)
OS X Lion
ruby 1.9.3p194
Rails 3.2.8
sqlite3 (1.3.6)
sqlite3-ruby (1.3.2)