Ruby on Rails(5)を使用する私はレンダリングしているビューに基づいてbodyタグのIDを変更するif文を使用したいと思います。 具体的には、自分のホームページでのみ背景画像を使用したいと思います。私はこれを画面いっぱいにしたいが、私がページに置くと、それは自分自身で境界線が現れる。そこで私はapplication.html.erbビューのbodyタグにアタッチしてIDがCSSに背景イメージをロードするように指示します。しかし、私はタイトルを取得できません:それはそこにあるとERBに伝えて、真実にしてください。レールのページタイトルに基づいてボディタグIDを変更するにはどうすればよいですか?
私がようにビューページで提供使用しています:
<% provide(:title, "Home") %>
が続いapplication.html.erbページに、私はif文CSSの有無にかかわらずbodyタグに入れて使用しようとしています次のように、提供されたタイトルに基づいて背景画像のID:
<!DOCTYPE html>
<html>
<head>
<title><%= yield(:title) %></title>
...
</head>
<% if :title == "Home" %>
<body id="home-background">
<% else %>
<body>
<% end %>
これはうまくいかないようです。タイトルは「収穫」され、アドレスバーに表示されますが、ifステートメントには表示されません。私もyield(:title)を変数に入れようとしましたが、レールはそれを好まなかったのです。これは私の最初のソロ・レール・プロジェクトですが、これが可能でなければならないことは分かっていますが、正しく実行する方法がわかりません。私は文句を言わない
ワンノート、:タイトルはシンボルである(コロンで始まります)。シンボルは文字列に似ていますが、メモリ内では異なる性質を持っています。チェックするには:title == "Home"は "title" == "Home"と言っているようです - 常にfalseです。シンボルの詳細については、http://www.troubleshooters.com/codecorn/ruby/symbols.htm – Swards