Ruby on rails 使用自定义对象名称呈现异构集合
在我的Rails应用程序中,我有一个继承自Ruby on rails 使用自定义对象名称呈现异构集合,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,render,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,Render,在我的Rails应用程序中,我有一个继承自Event::Base'event',:collection=>@events那样呈现它,则可以提供一个选项:as=>:event,以更改局部变量的名称,该局部变量对应于partial中的对象。但是,当分部的名称不是常量时,该怎么办?上述方法(render@events,:as=>:event)不起作用 另外,在上有一个解决方案,但它使用了部分名称的最后一部分,这不适合我。我自己没有尝试过验证,但这可能会起作用: class Event < Act
Event::Base
模型的@events
对象集合
如果像render:partial=>'event',:collection=>@events
那样呈现它,则可以提供一个选项:as=>:event
,以更改局部变量的名称,该局部变量对应于partial中的对象。但是,当分部的名称不是常量时,该怎么办?上述方法(render@events,:as=>:event
)不起作用
另外,在上有一个解决方案,但它使用了部分名称的最后一部分,这不适合我。我自己没有尝试过验证,但这可能会起作用:
class Event < ActiveRecord::Base
def to_partial_path
# assuming that you need different partials based on an attribute "variety"
"events/#{variety}"
end
end
class事件
您可能还需要使用:partial键,例如:render:partial=>@events,:as=>:event
而不是render@events,:as=>:event
编辑:这只适用于Rails 3.2+。。。请参阅。我自己还没有尝试验证这一点,但这可能有效:
class Event < ActiveRecord::Base
def to_partial_path
# assuming that you need different partials based on an attribute "variety"
"events/#{variety}"
end
end
class事件
您可能还需要使用:partial键,例如:render:partial=>@events,:as=>:event
而不是render@events,:as=>:event
编辑:这只适用于Rails 3.2+。。。请参阅。
渲染部分:@events,因为::event
确实有效!谢谢将集合作为部分传递是如此违反直觉,我一直认为它只能是文件名。render partial:@events,as::event
确实有效!谢谢将集合作为部分传递是非常违反直觉的,我一直认为它只能是文件名。