2016-09-13 49 views
0

使用Ruby on Rails(5)我想使用if語句來根據我所呈現的視圖更改body標籤的ID。 具體而言,我只想在我的主頁上使用背景圖片,而不是使用其他圖片。我想讓它填滿屏幕,但是如果我把它放在頁面上,它就會自動出現邊框。所以我想將它附加到application.html.erb視圖中的body標籤,以便ID會告訴CSS加載背景圖片。但是我不能得到:標題告訴ERB它在那裏並且聲明是真實的。如何根據導航欄中的頁面標題更改車身標籤ID?

我使用的視圖頁面上提供像這樣:

<% provide(:title, "Home") %> 

然後在application.html.erb頁我嘗試使用,如果把body標籤使用或不使用CSS語句背景圖片的ID基於提供的標題,如下所示:

<!DOCTYPE html> 
<html> 
    <head> 
    <title><%= yield(:title) %></title> 
    ... 
    </head> 

    <% if :title == "Home" %> 
    <body id="home-background"> 
    <% else %> 
    <body> 
    <% end %> 

但它似乎並不奏效。標題將「屈服」並顯示在地址欄中,但不會顯示在if語句中。我也試圖把yield(:title)放在一個變量中,rails也不喜歡這個。這是我的第一個單獨滑軌項目,我知道這應該是可能的,但我無法找到正確的方法,任何幫助將不勝感激。

+0

一個注意,:標題是符號(始於一個冒號)。符號有點像字符串,但在內存中有不同的特性。要檢查:title ==「Home」就像是說「title」==「Home」 - 總是爲false。瞭解有關符號的更多信息:http://www.troubleshooters.com/codecorn/ruby/symbols.htm – Swards

回答

0

我不會給你推薦的body標籤...但你可以只是body一個背景圖像後使用wrapper ...它可以是這樣的: -

你唯一需要是創建一個實例變量(@title)使用下面

###application.html.erb 

<body> 

    <div class="<%= @title=="USER" ? 'user_wrapper' : 'default_wrapper' %>"> 

    </div> 

</body> 




##css 

    .user_wrapper{ 
    background: url(user_background.jpg) no-repeat center center fixed; 
    } 

    .default_wrapper{ 
    background: url(default_background.jpg) no-repeat center center fixed; 
    } 

希望它有助於.. :)

+0

我對此做了一些調整,但概念讓我有了。完美的幫助。非常感謝。 – FalconBrazilT1

+0

太棒了..你可以接受我的回答,如果有幫助:) .. @ FalconBrazilT1 – Milind

相關問題