雖然我看不太懂這段 code 的意思,不過測試的結果,可以 work 耶! 讚!
就只剩下 JSON 轉 ActiveRecord 了,改天再來研究看看。
(1) 安裝 json:
% gem install json
(2) Add a new file : /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/json.rb , 裡頭包含以下程式碼:
require 'json/lexer'
require 'json/objects'
module ActiveRecord
module Json # :nodoc:
DEFAULT_CONVERSIONS = { Time => [:to_s, :db] }
def to_json(conversions = {})
conversions = DEFAULT_CONVERSIONS.merge(conversions)
self.attributes.keys.inject({}) do |hsh, key|
value = self.send(key)
hsh.merge(key => conversions[value.class] ? value.send(*conversions[value.class]) : value.to_s)
end.to_json
end
end
end
(3) 在 environment.rb 中加上: [Update]: 似乎不用加以下這段,加了反讓 fastcgi 掛掉,不加也能 work 啦
require "#{RAILS_ROOT}/lib/active_record/json"
ActiveRecord::Base.class_eval { include ActiveRecord::Json }
(4) 使用時,呼叫 to_json() 函式即可。
user = User.new()
user.to_json()


