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
вот и все, что вы сделали