有没有办法在局部内部运行视图

时间:2008-12-10 13:03:47

标签: ruby-on-rails ruby

我知道这很奇怪。但我无法想出其他方法来做我需要的事情。 我有一个控制器:报告和视图:报告。 此外,我有一个视图作为仪表板,我可以看到几个区域(部分)。 我需要将此报告视图添加到我的仪表板,但不知道如何。 此报告视图利用来自控制器的复杂逻辑并显示结果。 我怎么能“把”视图(报告)的(逻辑+演示)“卡住”到我的部分,所以我可以在我的仪表板上使用它?

谢谢。 阀。

4 个答案:

答案 0 :(得分:1)

(我希望我能理解这个问题,在这里......)

这部分似乎很重要:

  

此报告视图使用复杂   来自控制器的逻辑

作为一般规则,控制器应该简单。真的很简单。经验法则是“瘦控制器,胖模型”(Rails Envy制作了一些有趣但有用的screencasts on the subject

如果您创建了一个新模型(很可能不是从ActiveRecord :: Base继承),那么会封装您要传递给部分的逻辑会发生什么?然后,不同的控制器/操作组合可以根据需要/需要将信息传递到您的视图中。

或者我完全错过了这一点(并非不可能!)

答案 1 :(得分:0)

我建议重构报表控制器中的代码(如果这是包含“复杂”逻辑的代码)并将其放入可由仪表板和报表视图使用的包装类中。

答案 2 :(得分:0)

如果我没有弄错你可以做一个render_component,但现在这完全不赞成。

这是解决问题的最简单方法

答案 3 :(得分:0)

前一段时间我有一个类似的问题,他们弃用了render_controller。我找到的唯一解决方案是使用ajax,将参数传递给要加载的页面,绕过布局。