Rails has_one принадлежит_ для отображения поля в индексе?

У меня есть две модели: сезон и категория. Я хочу отобразить название категории в представлении индекса сезона.

class Season < ActiveRecord::Base
  attr_accessible :nb_down, :nb_up, :name, :category_id
  has_one :category
  accepts_nested_attributes_for :category
end

class Category < ActiveRecord::Base
  attr_accessible :color, :name
  belongs_to :season
end

В своей сезонной форме я добавляю категорию к сезону следующим образом:

<%= f.collection_select :category_id, Category.all,:id,:name %>

В моем представлении индекса сезона я хочу отобразить все столбцы сезона И название категории. Я показываю идентификатор кота, делающего:

<% @seasons.each do |season| %>
  <tr>
    <td><%= link_to season.id, season_path(season) %></td>
    <td><%= season.name %></td>
    <td><%= season.nb_up %></td>
    <td><%= season.nb_down %></td>
    <td><%= season.category_id %></td>
    (...)

Я хочу отображать название категории, а не идентификатор. Я пытаюсь сделать "season.category.name", но не работает. Где моя ошибка, пожалуйста?

Спасибо:)

[РЕДАКТИРОВАТЬ]: я создаю миграцию, чтобы добавить season_id в категории, и заменил I "has_one" на "own_to" в классе сезона, и это работает: я могу отображать название категории в представлении индекса сезона.

1 ответ

Решение

Создать миграцию

и добавьте столбец 'session_id' в таблицу catogeries

Запустите эту команду в корневой директории проекта в терминале

rails generate migration add_column_Session_id_to_categories session_id:integer

это создаст миграцию, теперь запустите эту команду

 rake db:migrate

вот и все, что вы сделали

Другие вопросы по тегам