Meine Rails-Anwendung liest nur Daten auf seiner Datenbank. Es gibt keine Rettung. Meistens sind alle meine Ansichten ein Formular mit einigen Feldern zum Filtern meiner Suche und einer Tabelle, die den Wert jeder Spalte ausgibt. So etwas wie das:Ändern Sie alle Attribute in Ansichten auf Ruby auf Schienen gedruckt
<table>
<tr>
<th> Col1 </th>
<th> Col2 </th>
<th> Col3 </th>
...
</tr>
<% Model.all.each do |model| %>
<tr>
<td> <%= model.col1 %> </td>
<td> <%= model.col2 %> </td>
<td> <%= model.col3 %> </td>
...
</tr>
<% end %>
Es gibt über 50 Modelle mit jeweils 10-20 Felder, fast 100 Tabellen. Es ist alles sehr einfach.
Nun fragte mein Kunde mir, dass, wenn eine Zelle leer ist (die Daten null oder ‚‘), er will sie drucken ‚-‘ anstelle der leeren Zelle auf dem Tisch
Zuerst dachte ich über etwas wie dies auf meinem application_helper.rb:
def avoid_empty(object)
if object == nil or object == ""
return "-"
else
return object
end
end
und überall auf meine Ansichten würde ich
<%= model.col1 %>
zu
ändern, nur<%= avoid_empty(model.col1) %>
aber ich habe tatsächlich 2659 Zeilen so. Ich bin mir nicht sicher, ob es der gesündere Ansatz ist.
Kann ich es jedes Mal ändern, wenn ich versuche, irgendeinen Wert von diesen Modellen zu drucken, damit ich diese Methode oder etwas Ähnliches zuerst durchgehen kann, ohne jede einzelne meiner 2659 Zeilen ändern zu müssen?
Das scheint genau das zu sein, wonach ich suchte, aber es funktioniert nicht. Ich bin mir nicht sicher, ob es daran liegt, dass ich in einer Oracle-Datenbank bin. Es gibt mir diesen Fehler, wenn self.column_names Aufruf: failed Active :: ConnectionAdapters :: OracleEnhancedConnectionException at/gestao_pessoas/Membros/membros_ativos "DESC gestao_pessoas_tb_membro_ativos"; existiert es? . Wenn ich dein Modul entferne, gibt es ein Array mit den Spaltennamen korrekt zurück. So ist es wahrscheinlich das Modul, das es nervt Ich bin mit Rails 4 und die Edelsteine: ‚Rubin oci8‘ und ‚active-oracle_enhanced-Adapter‘, ‚~> 1.5.6‘ –
@HelioBorges ich getestet habe das in Schienen 3 & PostgreSQL. Benutzte niemals Oracle. Können Sie die Details von "self" innerhalb des "included" Blocks angeben? Einige Details wie der Wert von "self" und "self.class". Informationen zur Fehlerrückverfolgung sind ebenfalls hilfreich. Sie können in GitHub gist Backtrace bereitstellen. –
Versuchen Sie auch, dieses Modul in ein anderes Modell zu integrieren, und prüfen Sie, ob es dort funktioniert. –