Walter,

Thanks for your reply.  

I am going for a display like the following:


Fruit
  Apple
  Orange
   Peach
Meat
  Beef
  Fish
  Poultry

Fruit and Meat are  category names and apple, orange, peach, etc are  type 
names.

This information is being stored in a join table that look like the 
following:

post_id  keyword_category_id   keyword_type_id
1              1                                    1 
1              1                                    2        
1              1                                    3                  

The schema look like the following:

keywords table
id :integer
post_id: integer
keyword_category_id :integer
keyword_type_id :integer

keyword_categories table
id  :integer
name: string

keyword_types table
id: integer
name: string
keyword_category_id :integer

I thought I could do the following:
.
<% @post.keywords.group_by(&:keyword_category).each do |category, type| %>
  <li><%= category.keyword_category.name %></li>
    <% type.each do |type| %>
  <%= type.keyword_type.name %>
  <% end %>
<% end %>

> This code doesn't work.


I had to use &:keyword_category_id as in the code below.  The output look 
like

 1 
   1
   2
   3
 2
   4
   5
   6
   
I want to display the category names and type names instead of the foreign 
key ids.  I think I am using group_by wrong or even perhaps i need an 
association in the other direction.  I am just baffled at the moment.


Any ideas?




On Wednesday, August 15, 2012 10:14:24 AM UTC-5, AmateurCoder wrote:
>
> I have a blog application where I would like to display on the post view a 
> list of keyword categories and associated keyword types.
>
> #views/post.html.erb
>
> .
> .
> .
> <% @post.keywords.group_by(&:keyword_category_id).each do |category, type| 
> %>
>     <li><%= category %></li>
>     <% type.each do |type| %>
>         <%= type.keyword_type_id %>
>     <% end %>
> <% end %>
> .
> .
> .
>
>
> The keyword categories and keyword types are in separate models.  The 
> association for the models are:
>
> #keyword_category.rb
>  has_many :keyword_types
>  
> #keyword_type.rb
>     belongs_to :keyword_category
>     
> #post.rb
>
>     has_many :keywords
>     has_many :keyword_types, through: :keywords
>     has_many :keyword_categories, through: :keywords
>     
> I am using a join table called 'keywords', for keeping track of the 
> keyword categories and keyword types for a post.
>
> The keywords table has the following fields.
> post_id
> keyword_category_id
> keyword_type_id
>
>
>
> The issue I am having is the view is displaying the ids and I can't figure 
> out how to do something like category.keyword_category.name?  Any ideas 
> on what I am doing wrong?  Thanks in advance for your help.
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msg/rubyonrails-talk/-/fSmxI0LAIrwJ.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to