Skip to content

Instantly share code, notes, and snippets.

@f3lan
Created July 9, 2012 12:58
Show Gist options
  • Save f3lan/3076397 to your computer and use it in GitHub Desktop.
Save f3lan/3076397 to your computer and use it in GitHub Desktop.
ActiveRecord::StatementInvalid: Mysql2::Error when using association name in .where method instead of foreign key
# ruby version: 1.9.3p136
# rails version: 3.2.6
# mysql2 version: 0.3.11
# User - Schema:
# =============
# Table name: users
#
# id :integer(4) not null, primary key
# mail :string(255) default(""), not null
# encrypted_password :string(128) default(""), not null
# password_salt :string(255) default(""), not null
# remember_token :string(255)
# remember_created_at :datetime
# sign_in_count :integer(4) default(0)
# current_sign_in_at :datetime
# last_sign_in_at :datetime
# current_sign_in_ip :string(255)
# last_sign_in_ip :string(255)
# first_name :string(255)
# last_name :string(255)
# username :string(255) not null
# parent_id :integer(4)
# created_at :datetime
# updated_at :datetime
# client_id :integer(4) not null
# account_id :integer(4)
# account_type :string(255)
# deleted :boolean(1) default(FALSE)
# parent_type :string(255)
# Client - Schema
# ===============
# == Schema Information
#
# Table name: clients
#
# id :integer(4) not null, primary key
# name :string(255)
# created_at :datetime
# updated_at :datetime
# official_name :string(255)
# uid :string(255)
# short_name :string(255)
#
# We updated rails from 3.0.13 to rails 3.2.6. After this update we could't run this comand in the console:
User.where(:client_id => client.id)
# Here the following error:
1.9.3p194 :025 > User.where(:client => Client.first)
Client Load (0.4ms) SELECT `clients`.* FROM `clients` LIMIT 1
User Load (0.3ms) SELECT `users`.* FROM `users` WHERE `users`.`client` = 1
Hirb Error: Mysql2::Error: Unknown column 'users.client' in 'where clause': SELECT `users`.* FROM `users` WHERE `users`.`client` = 1
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/activerecord-3.2.6/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:243:in `query'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/activerecord-3.2.6/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:243:in `block in execute'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/activerecord-3.2.6/lib/active_record/connection_adapters/abstract_adapter.rb:280:in `block in log'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/activesupport-3.2.6/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/activerecord-3.2.6/lib/active_record/connection_adapters/abstract_adapter.rb:275:in `log'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/activerecord-3.2.6/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:243:in `execute'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/activerecord-3.2.6/lib/active_record/connection_adapters/mysql2_adapter.rb:211:in `execute'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/activerecord-3.2.6/lib/active_record/connection_adapters/mysql2_adapter.rb:215:in `exec_query'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/activerecord-3.2.6/lib/active_record/connection_adapters/mysql2_adapter.rb:224:in `select'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/activerecord-3.2.6/lib/active_record/connection_adapters/abstract/database_statements.rb:18:in `select_all'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/activerecord-3.2.6/lib/active_record/connection_adapters/abstract/query_cache.rb:63:in `select_all'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/activerecord-3.2.6/lib/active_record/querying.rb:38:in `block in find_by_sql'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/activerecord-3.2.6/lib/active_record/explain.rb:40:in `logging_query_plan'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/activerecord-3.2.6/lib/active_record/querying.rb:37:in `find_by_sql'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/activerecord-3.2.6/lib/active_record/relation.rb:171:in `exec_queries'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/activerecord-3.2.6/lib/active_record/relation.rb:160:in `block in to_a'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/activerecord-3.2.6/lib/active_record/explain.rb:40:in `logging_query_plan'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/activerecord-3.2.6/lib/active_record/relation.rb:159:in `to_a'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/activerecord-3.2.6/lib/active_record/relation/delegation.rb:6:in `to_ary'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/hirb-0.7.0/lib/hirb/formatter.rb:88:in `Array'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/hirb-0.7.0/lib/hirb/formatter.rb:88:in `determine_output_class'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/hirb-0.7.0/lib/hirb/formatter.rb:53:in `format_output'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/hirb-0.7.0/lib/hirb/view.rb:204:in `render_output'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/hirb-0.7.0/lib/hirb/view.rb:123:in `view_output'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/hirb-0.7.0/lib/hirb/view.rb:200:in `view_or_page_output'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/hirb-0.7.0/lib/hirb/view.rb:186:in `output_value'
/Users/uhumac/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:160:in `block (2 levels) in eval_input'
/Users/uhumac/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:273:in `signal_status'
/Users/uhumac/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:156:in `block in eval_input'
/Users/uhumac/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:243:in `block (2 levels) in each_top_level_statement'
/Users/uhumac/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `loop'
/Users/uhumac/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `block in each_top_level_statement'
/Users/uhumac/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `catch'
/Users/uhumac/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `each_top_level_statement'
/Users/uhumac/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:155:in `eval_input'
/Users/uhumac/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:70:in `block in start'
/Users/uhumac/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:69:in `catch'
/Users/uhumac/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:69:in `start'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/railties-3.2.6/lib/rails/commands/console.rb:47:in `start'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/railties-3.2.6/lib/rails/commands/console.rb:8:in `start'
/Users/uhumac/.rvm/gems/ruby-1.9.3-p194@bliss/gems/railties-3.2.6/lib/rails/commands.rb:41:in `<top (required)>'
script/rails:6:in `require'
script/rails:6:in `<main>'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment