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

Railsでtypeが予約後でエラーでたからついでにActiveRecordの規約調べてみた。(ActiveRecord::SubclassNotFound: Invalid single-table inheritance type)

More than 5 years have passed since last update.

Railsで以下のエラー

ActiveRecord::SubclassNotFound: Invalid single-table inheritance type

結果

type は予約後でした。。。

ついでに(ActiveRecord命名規約とスキーマ規約)

命名規約

モデルクラス

キャメルケース(PostAuthor)

テーブル、スキーマ

スネークケース(post_author)

スキーマ規約

外部キー

(単数形テーブル名)id(例: item_id、orderid)

主キー

デフォルトでは自動生成されるid
変更もできる。

migration_file
def change
  create_table :author, id: false do |t|
  ...  
end
model
self.primary_key = :name

created_at

作成時に現在の日時を取得して登録

updated_at

更新時に現在の日時を取得して登録・更新

lock_version

楽観的ロックをかける
(ユーザAとユーザBが編集画面を開いていて、ユーザAが先に更新していた場合、ユーザBの更新は失敗する。)

type

単一テーブル継承
(同じような機能のテーブルは1つのテーブルで実現しよう、それでtypeを使って分類すればいいよねってやつ)

(関連名)_type

ポリモーフィック関連
(違う親を持つけど、どっちもあるテーブルこれを使ってるって場合!例えば、companyとuserで同じimageテーブルを使うとか...typeでcompany_idを指すか、user_idを指すかを決めようねってやつ)

(テーブル名)_count

関連付けられたオブジェクトの数をキャッシュ。

参考

Activeレコードの基本 | Rails日本語ドキュメント | Ruby STUDIO
http://ruby.studio-kingdom.com/rails/guides/active_record_basics
Rails4 - Railsで規約に沿わない古いデータを扱う - Qiita
http://qiita.com/k-shogo/items/884498ad512c0e6eb303
ActiveRecordによる楽観的ロック | Ruby on Rails 備忘録 - Ride On Rails
http://rubyonrails.gachinko.org/3-2/lock_optimistically/
【Rails】ActiveRecord:単一テーブル継承(sti)とポリモーフィック関連を未だにぱっと思い出せないのでまとめ。 - 記すに足らず。
http://shirusu-ni-tarazu.hatenablog.jp/entry/2012/11/04/173742

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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした