Buongiorno,
passo al problema numero 2.
Ho un model Persone, in cui vengono elencati tutti i personaggi storici
fra il 774 e il 1115. Nello show di ogni persona, visualizzo le cariche
amministrative ricoperte, le fonti che le citano e gli studi che sono
stati fatti su di essi.
Fonti e Studi sono due modelli divisi, uno si chiama Primaries e l’altro
Secondaries. La tabella di collegamento fra Persone e Fonti è una sola e
si chiama Person_Attestation.
In app/views/people/show.html.erb dopo tutti i dati della persona ci
sono quindi queste due parti:
Attestations
<% @person.person_attestations.each do |source| %>
- <%=h @person.name %>:
<%= sources_quotations source %>
<% end %>
<% if session[:user_id] %>
<%= link_to “Add Sources »”, :controller => “person_attestations”,
:action => “new”, :person_id => @person %>
<% end -%>
Studies
<% @person.person_attestations.each do |person_attestation| %>
- <%=h @person.name %>:
<%= studies_quotations person_attestation %>
<% end %>
<% if session[:user_id] %>
<%= link_to “Add Studies;”, :controller => “person_attestations”,
:action => “new”, :person_id => @person %>
<% end -%>
che rimandano all’helper person_attestation_helper:
def sources_quotations source
if source.primary_id
result = []
result << " #{h source.quotation}
" if
source.quotation.present?
result << " #{h source.primary.title}" if
source.secondary.title.present?
# tutti gli altri attributi
result.join ‘’
else
“non ci sono record”
end
end
def studies_quotations person_attestation
if person_attestation.secondary_id
result = []
result << " <q>#{h person_attestation.quotation}</q><br />" if
person_attestation.quotation.present?
result << " #{h person_attestation.secondary.title}" if
person_attestation.secondary.title.present?
# tutti gli altri attributi
result.join ‘’"
else
“non ci sono record”
end
end
in questo modo mi recupera solo le attestazioni primary, quindi le fonti
nel primo e solo gli study (secondary) nel secondo, quindi divide le due
visualizzazioni, ma ovviamente ogni volta che inserisco il record
nell’uno o nell’altro, mi viene anche un nuova attestazione “vuota” con
la frase “non ci sono record”. un’altra soluzione? devo dividere in due
person_attestation e duplicarlo, uno per fonti e uno per studi?
Grazie in anticipo
paola