Help us understand the problem. What is going on with this article?

Rails非標準の型を使うとFactoryGirlでエラーが出る

More than 5 years have passed since last update.

migrationファイルで以下のようにした

class CreateHosts < ActiveRecord::Migration
  def change
    create_table :hosts do |t|
      t.string :name, :null => false, :limit => 255
      t.column :status, "enum('standby','working','destroyed','poweroff','maintenance')", :null => false, :default => 'maintenance'
      # ...
    end
  end
end

hostsテーブルにはstatusカラムがあり、statusが取りうる値の種類が初めから分かっているのでenumにした。

そしてHostモデルを以下のようにした

class Host < ActiveRecord::Base
  validates :status,
    :presence => true,
    :inclusion => {
      :in => %w[standby working destroyed poweroff maintenance]
    }
end

これ自体は問題なく動作どうさする。
しかしながら、FactoryGirlを使ってHostインスタンスを作ろうとすると

Can't convert Symbol to string

とRailsの奥深くで怒られる。
上記のstatusのvalidationが無いと問題ないしnameなどの標準の型に対するvalidationは問題ない。
結局諦めて組み込みの型を使うのが無難そうだと、判断した。

レールから外れる時は自己責任で、、、、ということですね。

yuku_t
FLYWHEEL社でソフトウェアエンジニアをしています。昔はIncrements社最初の従業員としてQiitaを開発したりCTOやったりしていました。
http://yuku.takahashi.coffee
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away