如何使用工厂女孩设置id字段

时间:2013-09-21 20:04:19

标签: ruby-on-rails ruby-on-rails-4 factory-bot

我有这个设置。

class Musicbrain < ActiveRecord::Base
  attr_accessible :id
  validates_presence_of :id
end

create_table "musicbrains", id: false, force: true do |t|
  t.string  "id",        null: false
end

factory(:musicbrain) do
  sequence(:id) {|n| "79239441-bfd5-4981-a70c-55c3f15c128#{n}"}
end

问题是这个规范总是失败。

it "should set id" do
  build(:musicbrain, id: "79239441-bfd5-4981-a70c-55c3f15c1287").should be_valid
end

Musicbrain#id总是零,为什么会这样?

  • Rails 4.0.0
  • factory_girl 4.2.0

1 个答案:

答案 0 :(得分:1)

这解决了我的问题。

class Musicbrain < ActiveRecord::Base
  attr_accessible :id
  validates_presence_of :id
  self.primary_key = "id"
end