我想知道如何将当前的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 %>
非常感谢任何帮助。
答案 0 :(得分:5)
您可以创建一个视图助手,它将返回一个包含控制器名称,操作,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
答案 1 :(得分:0)
@harlow 很好的解决方案,虽然我发现它暴露了很多关于我的Rails应用程序的内容的信息(即'high_voltage'的用法)。
此外,我不需要在身体类别中包含的'high_voltage'页面的上下文之外的params['id']
,或者在我的情况下html-tag。
我用这个:
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