0

我有一个 ActiveRecord 实体。当我调用entity.save它时,returns和truereturnsentity.new_record?是0。在entities 表中,新行仍以正确的递增id 插入。这很奇怪。falseentity.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                    
4

1 回答 1

1

通过改变工作

if defined? entity[k] then 

对此

if defined? entity[k] and k != 'id' then
于 2012-11-10T15:27:34.183 回答