根据控制器操作名称更改application.html.slim中的标题

时间:2017-02-08 07:17:09

标签: ruby-on-rails slim-lang

我想更改并在application.html.slim中的控制器操作上设置自定义标题,而不是在控制器中

- if controller.action_name=~"home"
  title Custom title here
- elsif controller.action_name=~"login"
  title Login Page
- else 
  Default title

但它不起作用。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

如果您想使用=~,您需要在右侧使用正则表达式,而不是字符串。

- if controller.action_name =~ /home/
  title Home
- elsif controller.action_name =~ /login/
  title Login
- else
  title Default

然而,我通常使用的方法是在翻译文件中创建条目,config/locales/en.yml可能在您的情况下,并将页面标题放在那里。如果没有条目,则它会回退到您提供的默认值。

en:
  page_titles:
    welcome:
      index: Welcome
      login: Login

然后直接在视图中或创建辅助函数。

title= I18n.t("page_titles.#{controller.controller_name}.#{controller.action_name}", default: "Default title")