Ruby on Rails Friday, January 24, 2014

Hello,

I'm new to Ruby/Rails and going through 'Beginning Rails 4'.  In chapter 6 it has me create a join table for an articles and categories table (articles_categories).  In the migrate file I've entered this code from the book:

class CreateArticlesCategories < ActiveRecord::Migration
  def change
    create_table :articles_categories, :id=> false do |t|
      t.references :article
      t.references :category
    end
  end
  def self.down
    drop_table :articles_categories
  end
end

My issue is that after I migrate this file, when I try to make an association between the article and category object (article.categories << category) it spits an error that article_id does not exist in articles_categories table.  It makes sense to me since the references above do no have _id appended in the class.  If I change the class to the following, creating the relationship between article and category works fine:

class CreateArticlesCategories < ActiveRecord::Migration
  def change
    create_table :articles_categories, :id=> false do |t|
      t.integer :article_id
      t.integer :category_id
    end
  end
  def self.down
    drop_table :articles_categories
  end
end

My question is, how can I get the 't.references' format to work so that AR looks for an 'articles' and 'categories' column, instead of the same with _id appended?

Thanks

--
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/4f901d7c-bc93-44da-a338-3f889739e3f4%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

No comments:

Post a Comment