Blaine,

Thanks for the post.  The book I'm reading followed up the basic join 
example (many-to-many) with a 'rich' join (has_many :through).  From what I 
understand there's a scenario for both and they're similar but there are 
differences.  In the book's example the articles and categories tables are 
'meeting up' at the articles_categories table and not 'going through' to 
reference another table.

Thanks

On Friday, January 24, 2014 4:39:28 PM UTC-5, Blaine LaFreniere wrote:
>
>  
> On 1/24/14, 11:25 AM, Martin Sloan wrote:
>  
> 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?
>  
>
> You need to use has_many :through when working with join tables, not 
> has_and_belongs_to_many. The :through parameter specifies the join table.
>
> See this section of the Rails guide: 
> http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association
>
> -- 
>
>    - Blaine LaFreniere 
>    - *Phone*: 801-448-6124 
>    - *E-mail*: brlafr...@gmail.com <javascript:> 
>    - *Web*: brlafreniere.com 
>
>  

-- 
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+unsubscr...@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/734daa7f-7ccb-40ea-bc5c-a81dfb4cb021%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to