Rails 3.1部分后备

时间:2011-10-03 18:15:53

标签: ruby-on-rails partial fallback

我不太明白为什么部分渲染的新功能并不总是起作用。 例如,使用此代码:

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

如果pages/_data.html.erb不存在,它将永远不会回退到部分pages/test/_data.html.erb。我怎么能得到这种行为?

2 个答案:

答案 0 :(得分:2)

你可以做的事情是:

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

但是如果有人有更好的解决方案我会感兴趣,这个问题并不优雅,特别是当你有一些变量传递给partial时。至少如果由帮助者处理可能会更好。

答案 1 :(得分:0)

我对partials的理解并不是它们是用于渲染的小型,独立的HTML块,而是可以用来以更连贯的方式组织代码的抽象的部分和抽象。

正如我所看到的,创建部分以在一个或多个地方使用,使得文件不会变得杂乱,它们不仅仅用于简单地自己渲染。然而,我可能会弄错。