Question

J'ai RailsAdmin courir pour mes Rails 3 app qui a deux modèles - Vente et marchandises. Il y a une relation HABTM entre les deux. En RailsAdmin, lorsqu'une vente est ajouté ou modifié une liste de marchandises disponibles est indiqué de la manière habituelle. Cependant, seule la colonne « nom » de la marchandise est affichée. J'ai une autre colonne dont les besoins valeur à inclure dans la liste de sens. Comment puis-je ajouter ceci à l'interface RailsAdmin?

Je comprends que le RailsAdmin docs dire que les déclarations sur le terrain ont accès à un les liaisons hachage qui contient l'instance en cours d'enregistrement - mais je ne peux pas trouver des exemples de la façon de mettre en œuvre. Merci pour toute aide.

Était-ce utile?

La solution

Je propose que vous utilisez la méthode de l'étiquette d'objet personnalisé pour cela. Votre config RailsAdmin pourrait ressembler à ceci:

config.model Merchandise do
  object_label_method
    :custom_label
  end
end

Et votre modèle ActiveRecord contiendrait une méthode pour l'instance étiquettes:

class Merchandise < ActieRecord::Base
  def custom_label
    "#{self.label} #{self.another_column} #{self.another_column2}"
  end
end

Cela ne répond pas à votre question sur les variables disponibles consolidations, mais j'espère qu'il aborde la question de la racine. Si vous voulez voir quelles variables sont accessibles dans une vue sur le champ personnalisé, vous pouvez regarder à travers les vues dans ~ / rails_admin / app / views / rails_admin / main /. A montre grep rapide que les liaisons [: objet] est accessible dans ces vues, mais IIRC, il y a quelques autres variables liaisons qui sont accessibles

.

Autres conseils

Vous avez au moins les objets suivants disponibles:

bindings[:object] # the actual object
bindings[:view]   # you can access view helpers here
bindings[:controller]  # you can access the controller

Ce que vous devez dans ce cas est bindings[:object]

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top