我想在rails中使用partials以及单表继承.我目前有这个工作:
render partial: @vehicle # which renders the relevant view,depending on object type,eg: # views/trucks/_truck.haml # views/car/_car.haml
我想保留这些默认视图,并为每个对象创建一个附加的紧凑视图,也许就像这样
# example code only,I want to write something like: render partial: 'compact',locals: {vehicle: @vehicle} # and then have this render (for example) with # views/trucks/_compact.haml # views/car/_compact.haml
我可以愉快地重命名事物或更改文件名或位置,但最简单的方法是支持两种视图(简洁和默认)?
稍后会有更多的课程,所以寻找非常干净,优雅的代码.
(rails 3.0.5 on ruby 1.9.2)
解决方法
要得到你所要求的,你应该这样做:
render partial: "#{@vehicle.type.tableize}/#{@vehicle.type.underscore}",object: @vehicle
你会得到渲染:
views/trucks/_truck.html.haml
并且对象将被访问为:
@truck