Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

railsのエラー: データベースの名前

More than 1 year has passed since last update.

railsのエラーの備忘録です。

カラム名では予約後は使えない

railsでは予約語が設定されておりシステム上使えないことになっています。
エラー内容はこんな感じで

ActiveRecord::SubclassNotFound (The single-table inheritance mechanism failed to locate the subclass: 'news'. This error is raised because the column 'type' is reserved for storing the class in case of inheritance. Please rename this column if you didn't intend it to be used for storing the inheritance class or overwrite Site.inheritance_column to use another column for that information.):
app/controllers/sites_controller.rb:5:in `index'

予約語の例として
reload
send
methods
from_xml
destroy
load
hash
class
touch
errors
changed
try
save
inspect
type
など使うとエラーが出るので注意が必要です。

対応方法

単純にカラム名を変更するだけです。

その1、ターミナル下記のコマンドを打ち
ails generate migration rename_[変更前のカラム名]column_to[モデル名(複数形)]

その2、マイグレーションファイルを下記のように編集し
def change
rename_column :テーブル名, :変更前のカラム名, :変更後のカラム名
end

その3、あとはいつもどりmigrateです。

rake db:migrate

savaniased
趣味で色々勉強と投稿をしています。 最近ではPythonを初めとした、AIやデータサイエンスを勉強しています。 ただ、著作権の関係もあり投稿できないのが悩みの種ですが。
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