Tengo una solución algo más complicada. Quiero administrar todos mis títulos en mis archivos de configuración regional. También quiero incluir títulos significativos para mostrar y editar páginas de modo que el nombre del recurso esté incluido en el título de la página. Finalmente, quiero incluir el nombre de la aplicación en cada título de página, p. Editing user Gustav - MyApp
.
Para lograr esto creo un ayudante en application_helper.rb
que hace la mayor parte del trabajo pesado. Esto intenta obtener un nombre para la acción determinada del archivo de configuración regional, un nombre para el recurso asignado si hay uno y los combina con el nombre de la aplicación.
# Attempt to build the best possible page title.
# If there is an action specific key, use that (e.g. users.index).
# If there is a name for the object, use that (in show and edit views).
# Worst case, just use the app name
def page_title
app_name = t :app_name
action = t("titles.#{controller_name}.#{action_name}", default: '')
action += " #{object_name}" if object_name.present?
action += " - " if action.present?
"#{action} #{app_name}"
end
# attempt to get a usable name from the assigned resource
# will only work on pages with singular resources (show, edit etc)
def object_name
assigns[controller_name.singularize].name rescue nil
end
Usted tendrá que añadir textos específicos de acción en sus archivos de traducción de la siguiente forma:
# en.yml
titles:
users:
index: 'Users'
edit: 'Editing'
Y si desea utilizar los nombres de recursos significativos en sus puntos de vista singulares que puede ser necesario añadir un par de métodos proxy, por ejemplo
# User.rb
def name
username
end
posible duplicado de [¿Cómo cambio el título de una página en los rieles?] (http://stackoverflow.com/questions/185965/how-do-i-change-the-title-of-a-page-in-rails) – Kevin