У меня есть несколько более сложное решение.Я хочу управлять всеми своими заголовками в файлах локалей.Я также хочу включить значимые заголовки для страниц показа и редактирования так, чтобы название ресурса было включено в заголовок страницы.Наконец, я хочу включить название приложения в каждый заголовок страницы, например, Editing user Gustav - MyApp
.
. Для этого я создаю помощника в application_helper.rb
, который выполняет большую часть тяжелой работы.Он пытается получить имя для данного действия из файла локали, имя для назначенного ресурса, если таковой имеется, и объединяет их с именем приложения.
# 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
Вам нужно будет добавить тексты для конкретных действий в файлы локали в следующей форме:
# en.yml
titles:
users:
index: 'Users'
edit: 'Editing'
И если вы хотите использовать значимые имена ресурсов в своих единичных представлениях, вы можетенужно добавить пару методов прокси, например
# User.rb
def name
username
end