I am working on my first Ruby-on-Rails project after completing
“cookbook” and “todo list” tutorials.
When "SAVE"ing a new record to a table, the “create” method throws SQL
error #42000 for:
SELECT * FROM mailboxes WHERE (key = ‘TEST’) LIMIT 1
but if i change syntax to fully-qualified column, the query tool is
happy with:
SELECT * FROM mailboxes WHERE (mailboxes.key = ‘TEST’) LIMIT 1
Unfortunately, as a newbie from the 4GL world, I haven’t a clue how to
go about tracking the execution thread, and especially don’t know if
this is a rails scaffold generation problem or if it is me.
Ruby v1.8.2, Rails 1.0.0, MySQL 5.0 all on WinXP(sorry!)-Pro fully
patched.
My guess may be that ‘key’ is a reserved word for whatever database you
are using. Indeed it is definitely a reserved word in MySQL. You will
need to rename the column ‘mykey’ or something else instead of ‘key’. I
have run into this myself and found this out the hard way.