Ruby on Rails Tuesday, November 15, 2016

Hi all,

I have been learning Rails by working through Carneiro and Barazi's *Beginning Rails 3*. This has went well despite the fact that I am using Rails 4.2.6. I hit a little snag when in chapter 5, which goes over associations, I tried to create a has_many association between a user and that user's articles, specifically in the code that is supposed to sort the user's articles first by order of creation, and then by alphabetical order. I fixed this problem, with a little help from the Ruby Talk mailing list, with a lambda scope block, as follows in app/models/user.rb:


class User < ActiveRecord::Base                                        
     has_one :profile                                               
     has_many :articles, -> { order 'published_at DESC, title ASC' } :dependent => :nullify
end   


This seemed to work, so I went through the steps listed again, taking a stab that I could overwrite everything rather than just starting over.  When I ran rake db:migrate, I got the following error:

== 20161114230702 CreateArticlesCategories: migrating =========================
-- create_table(:articles_categories, {:id=>false})
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: table "articles_categories" already exists: CREATE TABLE "articles_categories" ("article_id" integer, "category_id" integer)
/home/john/src/ror/blog/db/migrate/20161114230702_create_articles_categories.rb:3:in `change'
ActiveRecord::StatementInvalid: SQLite3::SQLException: table "articles_categories" already exists: CREATE TABLE "articles_categories" ("article_id" integer, "category_id" integer)
/home/john/src/ror/blog/db/migrate/20161114230702_create_articles_categories.rb:3:in `change'
SQLite3::SQLException: table "articles_categories" already exists
/home/john/src/ror/blog/db/migrate/20161114230702_create_articles_categories.rb:3:in `change'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)

I did some poking around in the rails console, and running: category.articles.empty?

Returned: NameError: undefined local variable or method `category' for main:Object

Is there a way I can fix this without just deleting everything and starting over?

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/45dd619d-5519-4ca9-945c-4b292f056fd1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment