2012-03-05 55 views
3

我做我的應用程序模板如下:產量內容或屈服

<%= yield(:content) or yield %> 

我有一個嵌套在應用程序模板中的問題模板。 但是,對於我的問題索引,我只想顯示應用程序模板,而不是問題模板。

因此,我重寫這樣的:

format.html { render :layout => "application"} 

這將覆蓋模板細,使得應用程序模板被渲染,而不是問題的模板。但是,似乎並不像「或收益」聲明在起作用;我的內容是空白的。它可以正常工作,當我將應用程序模板更改爲:

<%= yield %> 

雖然我需要原始語句,但我可以使用嵌套模板。 我不希望在整個站點上編寫content_for以獲得嵌套模板。

有什麼想法?

回答

2

像這樣的東西應該做的伎倆:

在地方的

<%= yield(:content) or yield %> 

使用:

<%= content_for?(:content) ? yield(:content) : yield %> 

希望這有助於。

0

不是一個直接的答案,但你能提供有關你的設置的更多細節?我不覺得你在做「對」,也就是說,我不覺得你需要yield(:content)。我特別感興趣的是你實際提供content_for :content的情況。既然在這種情況下你不叫yield(沒有params),我不明白你爲什麼不簡單地提供收益的內容(沒有params)而不是有yield(:content)

除了另一個答案,你也可以嘗試(c = yield(:content)).present? ? c : yield萬一解決方案不起作用。