rails_admin mostrar nombre en lugar de id
He instalado rails_admin en mi aplicación y quiero hacer algo bastante básico ... Tengo dos modelos y su asociación surge como se esperaba ... Tengo un modelo de registro de seminario que pertenece a: usuario.
En rails_admin, se enumeran los usuarios de registro de mi seminario como Usuario # 1, Usuario # 1, etc.
Me gustaría que fuera el nombre del usuario. Lo que he logrado hacer es esto:
config.model SeminarRegistration do
label "Seminar Signups"
# Found associations:
configure :user, :belongs_to_association
configure :seminar_time, :belongs_to_association # # Found columns:
configure :id, :integer
configure :user_id, :integer # Hidden
configure :seminar_time_id, :integer # Hidden
configure :created_at, :datetime
configure :updated_at, :datetime # # Sections:
list do
field :user do
pretty_value do
user = User.find(bindings[:object].user_id.to_s)
user.first_name + " " + user.last_name
end
end
field :seminar_time
end
export do; end
show do; end
edit do; end
create do; end
update do; end
end
La sección "pretty_value" me da el texto del nombre y apellido de mi usuario ... pero tiene dos problemas:
1) Ya no es un enlace. Si dejo el valor predeterminado (Usuario # 1, Usuario # 2, etc.) proporcionará un enlace a ese usuario. ¿Cómo puedo recuperar ese enlace? ¿Cómo define rails_admin sus rutas?
2) Parece muy torpe tener que buscar por id justo allí en mi formulario ...
Lo siento si esta es una pregunta básica. He leído el manual y he buscado otras preguntas, pero aún no me ha "pinchado". También soy bastante nuevo en los rieles.
Gracias.
Tuve que hacer esto para que funcionara con el enlace:
Agregué un método de ayuda para el nombre completo como se sugirió, pero lo mantuve en mi opinión:
module ApplicationHelper
def full_name(user_id)
user = User.find(user_id)
user.first_name + " " + user.last_name
end
end
Luego, cambié la sección "valor_muy" de la siguiente manera:
pretty_value do
user_id = bindings[:object].user_id
full_name = bindings[:view].full_name(user_id)
bindings[:view].link_to "#{full_name}", bindings[:view].rails_admin.show_path('user', user_id)
end
Básicamente, para obtener acceso a cualquier asistente de visualización (rieles hechos o de otro tipo), debe agregar indings [: ver] .my_tag_to_use
Para obtener la ruta rails_admin para un usuario, por ejemplo, puede hacer:
bindings[:view].rails_admin.show_path('user', user_id)