Pregunta

Tengo Railsadmin funcionando para mi aplicación Rails 3 que tiene dos modelos: venta y mercancía. Hay una relación HBTM entre los dos. En Railsadmin, cuando se agrega o edita una venta, se muestra una lista de mercancías disponibles de la manera habitual. Sin embargo, solo se muestra la columna "Nombre" de la mercancía. Tengo otra columna cuyo valor debe incluirse para que la lista tenga sentido. ¿Cómo agrego esto a la interfaz Railsadmin?

Entiendo que el Railsadmin documentos Digamos que las declaraciones de campo tienen acceso a un hash de enlaces que contiene la instancia de registro actual, pero no puedo encontrar ningún ejemplo de cómo implementar esto. Gracias por cualquier ayuda.

¿Fue útil?

Solución

Propondría que use el método de etiqueta de objeto personalizado para esto. Su configuración Railsadmin puede verse así:

config.model Merchandise do
  object_label_method
    :custom_label
  end
end

Y su modelo Activerecord contendría un método para las etiquetas de instancia:

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

Esto no responde a su pregunta sobre las variables de enlace disponibles, pero espero que aborde la pregunta raíz. Si desea ver a qué variables se pueden acceder en una vista de campo personalizada, puede mirar a través de las vistas en ~/Rails_admin/App/Views/Rails_admin/Main/. Un GREP rápido muestra que los enlaces [: objeto] es accesible en esas vistas, pero iIRC, hay algunas otras variables de enlace que son accesibles.

Otros consejos

Tienes al menos los siguientes objetos disponibles:

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

Lo que necesitas en este caso es bindings[:object]

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top