在我的Rails应用程序中,我有@events
个从Event::Base < AR::Base
模型继承的对象集合。
如果将其呈现为render :partial => 'event', :collection => @events
,则可以提供选项:as => :event
来更改与部分内部对象对应的局部变量的名称。但是当部分名称不恒定时该怎么办?上述方式(render @events, :as => :event
)不起作用。
PS。在blog.obiefernandez.com 有一个解决方案,但它使用部分名称的最后一部分,这不适合我。
答案 0 :(得分:3)
我自己没有尝试过验证,但这可能会有效:
class Event < ActiveRecord::Base
def to_partial_path
# assuming that you need different partials based on an attribute "variety"
"events/#{variety}"
end
end
您可能还需要使用:部分密钥,例如:render :partial => @events, :as => :event
而不是render @events, :as => :event
编辑:这仅适用于Rails 3.2+ ...请参阅Obie's writeup on the topic。