find_by_sql error, any ideas please

Hello,

I am having problems with the find_by_sql while trying to update a table. I am using mysql and rails 2.2.2.

A small test like this:

User.find_by_sql "update users set name='Test'"

generates a horrible error. I might also add that I have config.gem "mysql" in my environment.rb and that I have tested the update query with sqlite and it works. Any ideas?

Thanks,

Elías

You have a nil object when you didn't expect it! The error occurred while evaluating nil.all_hashes     /home/elioncho/.gem/ruby/1.8/gems/activerecord-2.2.2/lib/ active_record/connection_adapters/mysql_adapter.rb:564:in `select'     /home/elioncho/.gem/ruby/1.8/gems/activerecord-2.2.2/lib/ active_record/connection_adapters/abstract/database_statements.rb:7:in `select_all_without_query_cache'     /home/elioncho/.gem/ruby/1.8/gems/activerecord-2.2.2/lib/ active_record/connection_adapters/abstract/query_cache.rb:60:in `select_all'     /home/elioncho/.gem/ruby/1.8/gems/activerecord-2.2.2/lib/ active_record/connection_adapters/abstract/query_cache.rb:81:in `cache_sql'     /home/elioncho/.gem/ruby/1.8/gems/activerecord-2.2.2/lib/ active_record/connection_adapters/abstract/query_cache.rb:60:in `select_all'     /home/elioncho/.gem/ruby/1.8/gems/activerecord-2.2.2/lib/ active_record/base.rb:635:in `find_by_sql'

Aldo Sarmiento,

Thanks for your reply, but the why does the update query inside the find_by_sql using sqlite works?

Kind regards,

Elías

Sorry typo error. Here it is again:

Aldo Sarmiento,

Thanks for your reply, but then why does the update query inside the find_by_sql using sqlite works?

Kind regards,

Elías

Should I use the execute method then?

elioncho wrote:

User.find_by_sql "update users set name='Test'"

Use User.update_all ['name = ?', 'Test'] or User.update "update users set name='Test'"