Aggiungendo il valore di colonna aggiuntiva in un elenco RailsAdmin
-
26-10-2019 - |
Domanda
Ho RailsAdmin in corsa per i miei Rails 3 app che ha due modelli - la vendita e Mercanzia. C'è una relazione HABTM tra i due. In RailsAdmin, quando viene aggiunto o modificato una vendita, l'elenco delle mercanzie disponibili è mostrato nel modo consueto. Tuttavia, viene visualizzata solo la colonna "nome" della merce. Ho un'altra colonna i cui bisogni valore da inserire per la lista di fare alcun senso. Come faccio ad aggiungere questa all'interfaccia RailsAdmin?
Capisco che il RailsAdmin docs dire che le dichiarazioni di campo hanno accesso ad un attacchi hash che contiene l'istanza record corrente - ma non riesco a trovare alcun esempio di come implementare questa. Grazie per qualsiasi aiuto.
Soluzione
mi piacerebbe propongo di utilizzare il metodo label oggetto personalizzato per questo. Il tuo RailsAdmin config potrebbe essere simile a questo:
config.model Merchandise do
object_label_method
:custom_label
end
end
E il vostro modello di ActiveRecord conterrebbe un metodo per le etichette esempio:
class Merchandise < ActieRecord::Base
def custom_label
"#{self.label} #{self.another_column} #{self.another_column2}"
end
end
Questo non risponde alla tua domanda sulle variabili attacchi disponibili, ma spero che affronta la questione principale. Se volete vedere quali variabili sono accessibili in un campo visivo personalizzato, è possibile guardare attraverso il punto di vista in ~ / rails_admin / app / views / rails_admin / / principale. Un rapido spettacoli grep che binding [: oggetto] è accessibile in quei punti di vista, ma IIRC, ci sono alcune altre variabili attacchi che sono accessibili
.Altri suggerimenti
di avere almeno i seguenti oggetti disponibili:
bindings[:object] # the actual object
bindings[:view] # you can access view helpers here
bindings[:controller] # you can access the controller
Quello che vi serve in questo caso è bindings[:object]