51ch @Nippon

こちらは高橋晃一の自己マンサイトです。万が一興味があればどうぞ。メッセージはお気軽に。

*

railsでオブジェクトをnewできないエラー

   

広告


<事象>
rails consoleから単純にnewしたら以下のエラーが表示される。

なんでnewが、undefindメソッドなんだろうと悩む。

skillsテーブルの定義内容は以下です。
mysql> show columns from skills;
+————-+————–+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+————-+————–+——+—–+———+—————-+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
| class | varchar(255) | YES | | NULL | |
| change_flg | tinyint(1) | NO | | 0 | |
| created_at | datetime | NO | | NULL | |
| updated_at | datetime | NO | | NULL | |
+————-+————–+——+—–+———+—————-+
8 rows in set (0.01 sec)

#原因
カラム名が予約語
少し慣れている人であれば上のテーブル定義からすぐにわかると思いますが、
classがrubyの予約語です。
予約後をカラム名として利用すると発生するうようです。

#対応
テーブル定義を変更しましょう。
・マイグレーションファイルを作成

・マイグレーションファイルの中身を編集

・migrateの実行
$ bundle exec rake db:migrate

rails console上で再度newしてみると

ちゃんとnewできました!初心者は、こんなのでも時間をロスしてしまいます。

広告

<参考>
[StackOverflow](http://stackoverflow.com/questions/32761577/rails-dbseed-error-undefined-method-finder-needs-type-condition-for-nilnil)
[予約後一覧](http://www.trail4you.com/TechNote/Ruby/Rails_keyword_list.html)

supersoftwareでエンジニア募集中

広告

 - プログラミング

  関連記事

iOS Dev Centerへのアクセス

iPhoneアプリをリリースするには、 1、Certificatesの設定 2、 …

no image
無料配布のFacebookやTwitterのソーシャルロゴアイコン素材まとめ23選|LIG INC.

アプリにソーシャルボタンを設置するときに、デザインがなく困っていたところ、 こち …

no image
Double型結果誤差

Double型では大きな数値や少数の計算をすると計算結果に誤差が生じます。 これ …

Swift1.1→1.2のキャスト時の注意 AS

2015年4月にiOS 8.3が発表され,iPhoneアプリ開発ツールであるXc …

AngularJS×BootstrapでModal作成 Angularバージョン注意!

<Situation> よくwebサイトで見かけるモーダルを UiBootstr …

ランダム値を発生させるときの注意点 UInt32

スポンサードリンク ランダム値を発生させるときの注意点。 ランダム値を発生させる …

swiftは大文字、小文字の区別が大事

  エラーがでている時に確認すべきポイントとして、大文字小文 …

エラーSIGABRTのとき

エラーとしてはSIGABRTが出ちゃうパターン。 ログを見ると、 「this c …

no image
アニメーション設定時の注意点

アニメーションを指定する時のUIViewの設定は、 UIView.animate …

【AngularJS】user別に紐づく値を取得

ユーザーごとに表示する値を変更する場合のメモ。 例えば、ユーザーが保持しているポ …