Rails:渲染模型?

时间:2009-08-11 14:21:10

标签: ruby-on-rails rendering

我可以想到在Rails中渲染模型的百万种不那么自动的方法,但我想知道是否有一些内置的方法来实现它。我希望能够这个

<%=@thing -%>

显然你可以做部分(我的意思是,调用渲染:部分),但我想知道是否有一些标准的方法来关联视图与模型。

[先谢谢,weppos,修复此问题的标签:)]

3 个答案:

答案 0 :(得分:13)

如果您将模型直接传递给render,它将尝试为其渲染部分模型。

<%= render @thing %>

与...相同。

<%= render :partial => 'things/thing', :object => @thing %>

如果你传递了一系列模型......

<%= render @things %>

它会为每个人呈现_thing部分,就好像你这样做了。

<%= render :partial => 'things/thing', :collection => @things %>

注意:这需要Rails 2.3。如果你有早期版本的Rails,你需要使用:partial选项来做同样的事情。

<%= render :partial => @thing %>

答案 1 :(得分:1)

您可以覆盖模型中的to_s方法以返回所需的表示形式,但这不一定是理想的,因为您的模型包含正确属于您视图的演示文稿问题。

此外,to_s实际上是为了返回模型的简短字符串表示形式,可用于调试等。

答案 2 :(得分:1)

你不是来自Seaside你呢? :)(我问,因为这正是在那里工作的方式,每个模型/可渲染对象都知道如何渲染自己,这就是你如何放置页面。)

关于您的实际问题,标准的方法是渲染您将@thing提供给的部分内容。 (即你对部分资金的看法是正确的,这就是观点通常与模型相关联的方式。)