2013-03-08 106 views
1

渲染(:partial =>“test”...)中渲染(测试)的等效功能是什么?我相信它的渲染(:partial =>“test”,:collection => test),但这似乎不适用于我的应用程序。使用Rails进行局部渲染

render(test)工作正常,但render(:partial=>"test", :collection=> test)不起作用。

我该如何解决这个问题?

+0

这是在同一个视图文件夹另外指定“文件夹/文件名” – 2013-03-08 05:47:00

+0

是的,它是在同一个文件夹中。 – scientiffic 2013-03-08 05:52:42

+0

你是什么意思“它不工作”?有错误吗?你有没有尝试将收藏变量重命名为“test”以外的东西?什么是输出? – deefour 2013-03-08 05:53:39

回答

2

当你调用

render partial: "test", collection: test 

有一个期望,

  • 你有一个在同一目录视图模板命名为_test.html.erb文件render
  • :collection值称为是可枚举的
  • _test.html.erb你使用一个test变量来工作从test收集

在部分文件的test变量命名为test_test.html.erb文件名后,集合变量test或它的模型实例类名称的项目。

我建议您阅读Layouts and Rendering指南渲染集合

+0

感谢您的帮助。我编辑了我的问题,使其更清晰。你有什么建议吗? – scientiffic 2013-03-08 05:51:56

2

它不工作的原因是它不需要收集参数;到底,这是什么工作:

render(:partial=>"test", :locals=> {:test=> test}) 
+1

这意味着'测试'实际上并不是可以接受的。很高兴你把它整理出来。 – deefour 2013-03-08 06:05:08