2011-10-03 48 views
2

我不明白爲什麼部分呈現的新特點不 總是踢例如,此代碼:的Rails 3.1分後備

= render(:partial => "pages/#{foo}/data") 

它永遠不會退回到部分pages/_data.html.erb如果pages/test/_data.html.erb不存在。我怎樣才能得到這種行爲?

回答

2

的東西,你可以做的是:

= render(:partial => "pages/#{foo}/data") rescue render(:partial => "pages/data") 

但如果有人有更好的解決辦法,我有興趣,尤其是當你有一些變量傳遞到部分這個人是不優雅。至少它可以更好,如果由幫手處理。

+0

爲我工作 - 我更明確瞭解救援情況(https://gist.github.com/reagent/6690353),以確保其他例外情況有所發展。 –

+0

這裏的問題是,如果''「pages /#{foo}/data」'''渲染引發了一些異常,它也會回退(吞下異常),這可能不是你想要的。 –

0

我對partials的理解並不是說它們是小的獨立的HTML渲染塊,而是可以用來以更一致的方式組織代碼的一些抽象部分。

正如我所看到的,部分被創建用於一個或多個地方,使得文件不會變得混亂,它們不會被用來簡單地被自己渲染。不過,我可能會誤解。