Name statt ID in der Ansichtstabelle has_many anzeigen

Ich habe ein paar ähnliche Beiträge ausprobiert, erhalte aber immer noch eine Fehlermeldung.

Im Beitragsmodell habe ich ein category_id-Feld. Ich habe folgende Modelle:

#Posts model
belongs_to :categories  

#Category model
has_many :posts

Im Posts-Index-Controller habe ich:

@categories = @posts.Category.find(:all, :order => 'categoryname')

In der Ansicht habe ich:

<% @posts.each do |post| %>
<tr>
<td><%= post.category_id %></td>
<td><%= @categories.categoryname %></td>

<td><%= link_to 'View', post %></td>
<td><%= link_to 'Edit', edit_post_path(post) %></td>
</tr>
<% end %>

In der 2. Spalte versuche ich, den Kategorienamen ("categoryname") aus der Category-Tabelle anstelle der category_id aus der posts-Tabelle anzuzeigen. Ich erhalte einen Fehler:

undefinierte Methode `Category 'für #ActiveRecord :: Relation: 0x3e1a9b0>

Ich habe auch versucht:

<td><%= post.categories.categoryname %></td>

Aber bekomme den gleichen Fehler.

Ebenso gut wie:

<td><%= post.category.categoryname %></td>

Anregungen wäre sehr dankbar.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage