Проблема с самореферентным has_many: через ассоциации в Rails

Я читал о самореферентном has_many: в современных ситуациях с данными, потому что я пытаюсь создать приложение Rails, которое использует их. Я нашел этот пример ситуации в Интернете, и у меня есть вопрос по этому поводу. Позвольте мне опубликовать этот пример кода из блога этого парня:

create_table :animals do |t|
  t.string :species
end
create_table :hunts do |t|
  t.integer :predator_id
  t.integer :prey_id
  t.integer :capture_percent
end

class Animal < ActiveRecord::Base
  has_many :pursuits,  :foreign_key => 'predator_id',
                       :class_name => 'Hunt',
                       :dependent => :destroy
  has_many :preys,     :through => :pursuits
  has_many :escapes,   :foreign_key => 'prey_id',
                       :class_name => 'Hunt',
                       :dependent => :destroy
  has_many :predators, :through => :escapes
end
class Hunt < ActiveRecord::Base
  belongs_to :predator, :class_name => "Animal"
  belongs_to :prey,     :class_name => "Animal"
end

Допустим, я создаю веб-страницу, которая перечисляет первое животное в его базе данных. Под этим заголовком находится список процентов (capture_percent). Каждый процент относится к животному, на которое охотится животное этой страницы, но оно не сообщает вам имя животного, а только процент. Нажав на любой процент, вы попадете на страницу соответствующего животного.

Я знаю, что это довольно сложный вопрос, чтобы обернуть голову вокруг, но я пытаюсь понять это. Должен ли я создать отдельную таблицу для CapturePercent?

13.12.2008 06:42:45
1 ОТВЕТ
РЕШЕНИЕ

Должен ли я создать отдельную таблицу для CapturePercent?

Вовсе нет, в этом нет ничего сложного:

<ul>
<% @animal.pursuits.each do |pursuit| %>
  <li><%= link_to "#{pursuit.capture_percent}%", pursuit.prey %></li>
<% end %>
</ul>
9
20.05.2014 18:37:30