Problem mit selbstbezüglicher has_many: durch Verbände in Rails
-
21-08-2019 - |
Frage
Ich lese über selbstbezüglicher has_many: durch Daten Situationen heute, weil ich versuche, eine Rails-Anwendung zu erstellen, die sie verwendet. Ich fand diese Beispielsituation im Internet , und ich habe eine Frage. Lassen Sie mich von diesem Kerl Blog dieses Beispiel-Code schreiben:
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
Lassen Sie uns sagen, ich bin den Aufbau einer Web-Seite, die das erste Tier in der Datenbank aufgeführt sind. Unter dieser Überschrift ist eine Liste der Prozentsatz (capture_percent). Jeder Prozentsatz bezieht sich auf ein Tier, dass dieses Tier verjagt Seite, aber es Sie nicht den Namen des Tieres sagen, nur um den Prozentsatz. Klicken auf einen bestimmten Prozentsatz werden Sie dann nehmen auf die Seite des entsprechenden Tieres.
Dies ist eine Art einer schwierigen Frage des Kopf herum zu wickeln, ich weiß, aber ich versuche, es herauszufinden. Hätte ich für CapturePercent eine separate Tabelle erstellen, vielleicht?
Lösung
Habe ich für CapturePercent eine separate Tabelle erstellen, vielleicht?
Gar nicht, es scheint nicht, etwas kompliziert, um dies zu sein:
<ul>
<% @animal.pursuits.each do |pursuit| %>
<li><%= link_to "#{pursuit.capture_percent}%", pursuit.prey %></li>
<% end %>
</ul>