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?

War es hilfreich?

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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top