On Aug 15, 2012, at 11:14 AM, 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.

That's what your view is requesting. 

<%= type.keyword_type_id %>

It's not clear from the model code you have posted where the name lives, and 
whether it is the name of the category you want to show or the name of the 
keyword.  Could you post your schema? Usually, if you have a whatever_id 
available, you can also get at the whatever itself directly, and then branch 
off of that to show the particular property of that object that you want to 
show. Maybe it's this:

<%= type.keyword_type.name %>

But I'm not sure, because your relationships seem to be one-sided.

Walter

> 
> -- 
> 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/-/yACrHxSm9pQJ.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  

-- 
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].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to