Rails - 在路由更改时动态更新样式

时间:2017-04-16 22:00:40

标签: css ruby-on-rails routes

我正在尝试通过在路由更改时更新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

0 个答案:

没有答案