我想知道如何将当前的 high_voltage 页面名称作为我的类呼应出来<body>
?
我目前的解决方案有点麻烦:
# app/views/layouts/application.html.erb
<body class="<%= yield :body_class %>">
# app/views/pages/principles.html.erb
<% content_for :body_class do %>home<% end %>
任何帮助将不胜感激。
我想知道如何将当前的 high_voltage 页面名称作为我的类呼应出来<body>
?
我目前的解决方案有点麻烦:
# app/views/layouts/application.html.erb
<body class="<%= yield :body_class %>">
# app/views/pages/principles.html.erb
<% content_for :body_class do %>home<% end %>
任何帮助将不胜感激。
您可以创建一个视图助手,它将返回一个带有控制器名称、操作、id 等的字符串。
module ApplicationHelper
def body_class
"#{controller_name} #{controller_name}-#{controller.action_name} #{page_id}"
end
def controller_name
controller.controller_path.gsub('/','-')
end
def page_id
params['id']
end
end
@harlow 不错的解决方案,尽管我发现它暴露了很多关于我的 Rails 应用程序内部的信息(即“高电压”的使用)。
此外,对于 body 或在我的情况下为 html-tag,我不需要params['id']
包含在类中的“high_voltage”页面的外部上下文。
我用这个:
module ApplicationHelper
def html_class
"#{controller.controller_name} #{controller.action_name} #{page_id}"
end
def page_id
return params['id'].gsub('/','-') if controller.controller_name == 'pages'
return nil
end
end