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.