Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 无法在测试环境中设置ActiveRecord ID_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 3 无法在测试环境中设置ActiveRecord ID

Ruby on rails 3 无法在测试环境中设置ActiveRecord ID,ruby-on-rails-3,Ruby On Rails 3,在创建回调之前,我可以在生产和开发环境中分配自定义GUID。但是,在测试环境中运行的相同代码无法更改自定义GUID的值。请参见下面的代码示例 require 'rubygems' require 'uuidtools' require 'base32/crockford' class WhatClass < ActiveRecord::Base # Declare the non-standard column guid as the primary key set_primar

在创建回调之前,我可以在生产和开发环境中分配自定义GUID。但是,在测试环境中运行的相同代码无法更改自定义GUID的值。请参见下面的代码示例

require 'rubygems'
require 'uuidtools'
require 'base32/crockford'

class WhatClass < ActiveRecord::Base
  # Declare the non-standard column guid as the primary key
  set_primary_key :guid
  # Use a callback to generate the record id
  before_create :create_uuid

  private
    # This method creates a universally unique identifier (UUID)
    # for an instance of WhatClass. This method is called before the
    # record is created.
    def create_uuid
      # Create the UUID
      uuid = UUIDTools::UUID.sha1_create(UUIDTools::UUID_URL_NAMESPACE, "string-to-create-from")
      self.guid = Base32::Crockford.encode(uuid.to_i)
    end
end
有人能解释一下为什么self.guid可以在生产/开发中工作,但不能在测试中工作吗