現在の高電圧ページ名をクラスとしてどのようにエコーアウトできるの<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 %>
どんな助けでも大歓迎です。
現在の高電圧ページ名をクラスとしてどのようにエコーアウトできるの<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アプリの内臓に関する多くの情報(つまり、「high_voltage」の使用法)が公開されていることがわかりました。
params['id']
また、body-または私の場合はhtml-tagのクラスに含まれる「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