2

現在の高電圧ページ名をクラスとしてどのようにエコーアウトできるの<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 %>

どんな助けでも大歓迎です。

4

2 に答える 2

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
于 2012-11-20T02:12:32.257 に答える
0

@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
于 2013-02-17T21:45:47.423 に答える