1

我从轮胎中获得了一组搜索结果,其中包含各种 activemodel 类型的对象,我需要将每个对象呈现为一个字符串。目前,我正在对这些结果进行循环,在每个结果上调用 render_to_string(result)。这将使用该 activemodel 对象的默认部分。

但是,这要求我为每个我希望可搜索的类设置默认部分作为搜索的表示。这意味着我需要在代码中的其他任何地方显式渲染一个集合(所有相同类型),我需要显式指定使用我的通用部分进行渲染,而实际上通用部分应该是默认值。它还提出了一个问题,如果我需要渲染不同类型的不同集合,我会做什么,因为它会使用与搜索相同的部分。

我真正想要的是能够将前缀传递给 render_to_string 告诉它寻找默认的部分,但在这个目录中 - 这意味着我可以保持我的搜索部分分开,同时仍然能够轻松地呈现对象.

有没有办法做到这一点或其他更好的解决方案?

4

1 回答 1

1

我会打电话给:

 render_to_string :partial => 'searches/result', :collection => @results

然后在该部分中确定应如何显示单个结果:

case result.class.name
when 'Foo'
...
end

这为我提供了结果格式和显示的单一位置。

于 2012-06-25T22:21:34.870 回答