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. Many thanks in advance...
on 2006-03-21 22:57
on 2006-03-21 23:10
'key' is a mysql reserved word. Using a different column name would be an easy fix. And yes, 'keys' is also a reserved word. -- Wes On 3/21/06, craig spengler <email@example.com> wrote: > happy with: > Many thanks in advance... > > -- > Posted via http://www.ruby-forum.com/. > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > http://lists.rubyonrails.org/mailman/listinfo/rails > -- -- Wes
on 2006-03-21 23:12
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. Good luck! http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html
on 2006-03-21 23:16
craig spengler wrote: > > Many thanks in advance... Thanks, guys, i'll check it out right away.