Skip to content

Instantly share code, notes, and snippets.

@guinslym
Last active January 3, 2016 04:58
Show Gist options
  • Save guinslym/8412162 to your computer and use it in GitHub Desktop.
Save guinslym/8412162 to your computer and use it in GitHub Desktop.
I'm having a type mistmatch errors. It's a HABM relationship. Artcle<->Category. I don't understand this:
1.9.3-p484 :034 > article = Article.last
Article Load (0.2ms) SELECT "articles".* FROM "articles" ORDER BY "articles"."id" DESC LIMIT 1
=> #<Article id: 3, title: "Introduction to Active Record", body: "Active Record is Rails", published_at: "2014-01-12 05:00:00", created_at: "2014-01-12 08:39:41", updated_at: "2014-01-12 08:39:41", excerpt: nil, location: nil, user_id: nil>
1.9.3-p484 :035 >
1.9.3-p484 :029 > category = Category.find_by_name('Pogramming')
Category Load (0.4ms) SELECT "categories".* FROM "categories" WHERE "categories"."name" = 'Pogramming' LIMIT 1
=> nil
1.9.3-p484 :030 > article.categories << category
(0.1ms) begin transaction
(0.1ms) rollback transaction
ActiveRecord::AssociationTypeMismatch: Category(#28243960) expected, got NilClass(#4618340)
from /home/guinslym/.rvm/gems/ruby-1.9.3-p484@rails3tutorial2ndEd/gems/activerecord-3.2.16/lib/active_record/associations/association.rb:210:in `raise_on_type_mismatch'
from /home/guinslym/.rvm/gems/ruby-1.9.3-p484@rails3tutorial2ndEd/gems/activerecord-3.2.16/lib/active_record/associations/collection_association.rb:494:in `block in concat_records'
from /home/guinslym/.rvm/gems/ruby-1.9.3-p484@rails3tutorial2ndEd/gems/activerecord-3.2.16/lib/active_record/associations/collection_association.rb:493:in `each'
from /home/guinslym/.rvm/gems/ruby-1.9.3-p484@rails3tutorial2ndEd/gems/activerecord-3.2.16/lib/active_record/associations/collection_association.rb:493:in `concat_records'
from /home/guinslym/.rvm/gems/ruby-1.9.3-p484@rails3tutorial2ndEd/gems/activerecord-3.2.16/lib/active_record/associations/collection_association.rb:134:in `block in concat'
from /home/guinslym/.rvm/gems/ruby-1.9.3-p484@rails3tutorial2ndEd/gems/activerecord-3.2.16/lib/active_record/associations/collection_association.rb:149:in `block in transaction'
from /home/guinslym/.rvm/gems/ruby-1.9.3-p484@rails3tutorial2ndEd/gems/activerecord-3.2.16/lib/active_record/connection_adapters/abstract/database_statements.rb:192:in `transaction'
from /home/guinslym/.rvm/gems/ruby-1.9.3-p484@rails3tutorial2ndEd/gems/activerecord-3.2.16/lib/active_record/transactions.rb:208:in `transaction'
from /home/guinslym/.rvm/gems/ruby-1.9.3-p484@rails3tutorial2ndEd/gems/activerecord-3.2.16/lib/active_record/associations/collection_association.rb:148:in `transaction'
from /home/guinslym/.rvm/gems/ruby-1.9.3-p484@rails3tutorial2ndEd/gems/activerecord-3.2.16/lib/active_record/associations/collection_association.rb:134:in `concat'
from /home/guinslym/.rvm/gems/ruby-1.9.3-p484@rails3tutorial2ndEd/gems/activerecord-3.2.16/lib/active_record/associations/collection_proxy.rb:118:in `<<'
from (irb):30
from /home/guinslym/.rvm/gems/ruby-1.9.3-p484@rails3tutorial2ndEd/gems/railties-3.2.16/lib/rails/commands/console.rb:47:in `start'
from /home/guinslym/.rvm/gems/ruby-1.9.3-p484@rails3tutorial2ndEd/gems/railties-3.2.16/lib/rails/commands/console.rb:8:in `start'
from /home/guinslym/.rvm/gems/ruby-1.9.3-p484@rails3tutorial2ndEd/gems/railties-3.2.16/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'1.9.3-p484 :031 >
1.9.3-p484 :031 > Article
=> Article(id: integer, title: string, body: text, published_at: datetime, created_at: datetime, updated_at: datetime, excerpt: string, location: string, user_id: integer)
1.9.3-p484 :032 > Category
=> Category(id: integer, name: string, created_at: datetime, updated_at: datetime)
sqlite> .schema articles_Categories
CREATE TABLE "articles_categories" ("article_id" integer, "category_id" integer);
sqlite>
@guinslym
Copy link
Author

this was a typo error:
category = Category.find_by_name('Pogramming')
shoud be
category = .....('Programming')

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment