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.
has_many :keyword_types
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.
I thought I could do the following:
.
<% @post.keywords.group_by(&:keyword_category).each do |category, type|
%>
<%= category.keyword_category.name %>
<% 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.
You might want to look at this blog post (kind of old, but it might
help):
You might also want to read through the Rails Guide on Associations, and
see if you can parse out what’s missing in your relationships. Make sure
that each has_many is balanced on the other side by a belongs_to.
Walter
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.