1

私がしなければならないことは非常に単純ですが、私は Rails の初心者なので、それを行うためのエレガントな方法は私を回避することです。基本的に、現在表示されているビューに基づいて、application.html.erb ファイルにある body タグの class 属性を変更する必要があります。

したがって、私のインデックスページでは次のようになります。

<body class="pull_top">

しかし、(これまでのところ)他のページでは、

<body>

私の最初の考えは、これをapplication_helper.rbに追加することでした

  def body_class
    default_class = ""
    if current_page?(controller: 'index')
      default_class = "pull_top"
    end
    default_class
  end

それからする

<body class="<%= body_class %>">

しかし、インデックス以外の他のすべてのページでは、最終的には

<body class="">

私は避けたいと思います。

4

5 に答える 5

0

body_class が適用クラスよりも存在する場合は if ステートメントを配置できます。それ以外の場合は、そのままにしておくことができます。

<% if body_class.present? %>
  <body class="<%= body_class %>">
<% else %>
  <body>
<% end %>
于 2016-05-30T10:26:24.813 に答える
0

どうですか:

def body_class
  default_class = nil
  if current_page?(controller: 'index')
    default_class = "pull_top"
  end
  default_class
end

見る:

<body<%= " class=\"#{body_class}\"" if body_class %>>

ここでの問題は、body_class が 2 回呼び出されることです

于 2013-04-30T11:39:12.100 に答える