Domanda

Stavo leggendo su has_many autoreferenziale: attraverso situazioni di dati oggi, perché sto cercando di costruire un'applicazione Rails che li utilizza. Ho trovato questo su Internet, e ho una domanda su di esso. Permettetemi di postare questo codice di esempio dal blog di questo tipo:

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

Diciamo che sto costruendo una pagina web che elenca il primo animale nel suo database. Sotto questa voce è un elenco di percentuali (capture_percent). Ogni percentuale si riferisce ad un animale che caccia di animali di questa pagina, ma non vi dico il nome dell'animale, solo la percentuale. Facendo clic su un dato percentuale vi porterà poi alla pagina dell'animale corrispondente.

Questa è una specie di una domanda difficile per avvolgere la testa in giro, lo so, ma sto cercando di capirlo. Avrei dovuto creare una tabella separata per CapturePercent, forse?

È stato utile?

Soluzione

  

Dovrei essere necessario creare una tabella separata per CapturePercent, forse?

Non a tutti, non sembra essere nulla di complicato questo:

<ul>
<% @animal.pursuits.each do |pursuit| %>
  <li><%= link_to "#{pursuit.capture_percent}%", pursuit.prey %></li>
<% end %>
</ul>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top