我正在尝试通过在路由更改时更新css类来更改html元素上的背景图像。我正在使用辅助函数,如类似帖子中所建议的那样,但css类仅在重新加载页面时应用。在路由更改中动态更改css类的最佳方法是什么?
application.html.erb
<!DOCTYPE html>
<html class="<%= yield(:html_class) || '' %>">
<head>
<title><%= full_title(yield(:title)) %></title>
<%= csrf_meta_tags %>
<%= stylesheet_link_tag 'application', media: 'all',
'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
<%= render 'layouts/shim' %>
...
home.html.erb
<% html_class 'nail' %>
项目/ index.html.erb
<% html_class 'test' %> #only applied on page reload
助手/ application_helper.rb
module ApplicationHelper
def html_class(class_name)
content_for(:html_class) { class_name }
end
end