Web制作メモ -トップへ-

RailsでDBのカラム名にMySQLの予約語を使いエラー

Ruby2016.02.07 02:59

商品名のテーブルを「desc」としていた所、whereメソッドがエラーを吐いた。

マイグレーションもシード投入も上手く行っていたので、発見まで時間がかかってしまった。

どうやらdescはMySQLの予約語らしく、使ってはいけないらしい。

Railsにも予約語があるし、予約語には気を付けねば。

descをitem_descにして解決

発生したエラーメッセージ

ActiveRecord::StatementInvalid in Admin::Items#search
Showing /sample/app/views/admin/template/index.html.erb where line #5 raised:

Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc LIKE "%2%")' at line 1: SELECT `items`.* FROM `items` WHERE (desc LIKE "%2%")