2016年2月6日土曜日

FactoryGirlでシリアライズしたデータを登録する

DBにHashをシリアライズしたものを文字列として保存していて、
そのテストデータをFactoryGirlで作りたくて調べました。

migration
class User < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :name
      t.text :info
    end
  end
end

model
class User < ActiveRecord::Base
  serialize :info
end

最初に以下のようなStringで入れてみたりしましたがダメでした。
"{ memo1: 'memo', memo2: 'memo2', count: 2 }"

調べたところ、()や{}で囲えばよいようです
factory
require 'faker'
FactoryGirl.define do
  factory :user do
    id 1
    name 'Taro'
    info ({ memo1: 'memo', memo2: 'memo2', count: 2 })
  end
end

参考URL
http://www.rubycoloredglasses.com/2012/06/add-a-serialized-hash-attribute-to-a-factory_girl-definition/

0 件のコメント:

コメントを投稿