Czytałem o selfreferencyjnym has_many: poprzez dzisiejsze sytuacje danych, ponieważ próbuję zbudować aplikację Rails, która ich używa. Znalazłem to example situation w Internecie i mam pytanie na ten temat. Pozwól mi pisać ten przykładowy kod z bloga tego gościa:Problem z samoodnawialnymi has_many: poprzez asocjacje w Railsach
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
Powiedzmy buduję stronę internetową z listą pierwsze zwierzę w swojej bazie danych. Pod tym nagłówkiem znajduje się lista wartości procentowych (capture_percent). Każda wartość procentowa odnosi się do zwierzęcia, które poluje na tę stronę, ale nie podaje imienia zwierzęcia, tylko procent. Kliknięcie dowolnej wartości procentowej spowoduje przejście do odpowiedniej strony zwierzęcia.
To jest trudne pytanie, które trzeba owinąć, wiem, ale próbuję to rozgryźć. Czy mógłbym stworzyć osobną tabelę dla CapturePercent?