ActiveRecordであるエンティティがあります。呼び出すentity.save
とtrue
、entity.new_record?
が返さfalse
れ、が返されますが、entity.id
は0です。エンティティテーブルでは、新しい行は正しい増分IDで挿入されたままです。とても変です。
私のRailsバージョンは3.2.8で、データベースはMysqlで、gem mysql2(0.3.11)を使用しています。私は一日中これに苦労しました...
追加されたコード:jsonはフロントエンドからの文字列です。
o = JSON.parse(CGI.unescape(json))
if o.has_key?('cls') then
@r = o['cls']
cls = o['cls']
#create
if o['action'] == 0 then
entity = Object.const_get(cls).new
o.each_pair do |k,v|
# entity.respond_to? check method exist
if defined? entity[k] then
entity[k] = v
end
end
r = entity.save!
およびモデル(rails gモデルによって生成):
class Node < ActiveRecord::Base
attr_accessible :iNodeId, :level, :name, :pNodeId, :stationId, :type
end