2017-02-14 48 views
0

我們有幾個組織,每個組織都有一個.show.html.erb頁面。我們希望使組織能夠自定義頁面的顏色。爲每個顯示頁面自定義顏色 - 軌道上的紅寶石

在我們的模式,我們有:

create_table "organizations", force: :cascade do |t| 
    t.string "theme" 
end 

我嘗試添加以下我們的「佈局/ application.html.erb頁面啓用此定製(本地工作,但不是在生產中):

<style media="screen"> 
    .theme { 
    background: #<%= @organization.theme %> !important; 
    } 
</style> 

我對Rails很新奇......我是否正確地考慮過這個問題?有沒有人有更好的方式來實現這個想法?

回答

2

您可能需要yield塊來完成此操作。

layouts/application.html.erb

<style media="screen"> 
    .theme { 
    background: #<%= content_for?(:theme) ? yield(:theme) : default_theme %> !important; 
    } 
</style> 

在各視圖:

<% content_for :theme, @organization.theme %> 

見的理解yield文檔: http://guides.rubyonrails.org/layouts_and_rendering.html#understanding-yield

更多關於content_forhttp://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-content_for