yochiyochirb/kajaeru

seed.rb で STI の子モデルを作るときに余計な type 属性の指定がある

Closed this issue · 0 comments

db/seeds.rb の以下の 4 行目の箇所で roles テーブルの STI で CandidateVoter のレコードを作っているが、レシーバがそれぞれのクラスになっているためそれらの type は明白であり自動的に判定されるので明示的に指定する必要はない。

というか上位バージョンの Rails では type などの inheritance_columncreate (create!) に指定したらエラーとなってしまう (どのバージョンからかは未確認) 。

  Member.all.map do |member|
    %w(candidate voter).map {|klass| klass.classify.constantize }
      .each do |klass|
        klass.create!(member_id: member.id, type: "#{klass}")
      end
  end