我正在寻找其他人通常如何组织他们的部分多态资源.
例:@H_403_3@
我有多态的Image,根据什么是可成像的,我想显示略有不同的东西.@H_403_3@
我有一个部分images / _image,可以调用render imageable.images.我目前的心态是让我的图像部分检查可成像的类型,然后有另一部分,特定于该情况.我的组织将是这样的:@H_403_3@
images/ _image.html.haml _product.html.haml _post.html.haml _user.html.haml
我的_image部分看起来像:@H_403_3@
%div = render :partial => "images/#{imageable.type}"
这看起来像是一种糟糕的方法,还是采取了错误的做法?我认为从任何地方调用render imageable.images比调用render更好:partial => … 到处都是.@H_403_3@
任何想法将不胜感激.你是怎么做到的?@H_403_3@
编辑:很长一段时间过去了,我仍然想知道是否有人对此有任何意见.抛出赏金,看看是否吸引了一些注意力.@H_403_3@
解决方法
在你的代码中现在还不清楚_product实际上是_image.
我认为Rails的意图是这样做:@H_403_3@
shared/ _image.html.haml imageable/ _product.html.haml _post.html.haml _user.html.haml
然后在_image部分你打电话:@H_403_3@
渲染:部分=> imageable /#{image.type}“,:image => image@H_403_3@
现在从您的目录结构中可以清楚地看到您的多态性是什么.@H_403_3@
(注意:我使用了共享目录,但是当你的图像部分实际上没有在视图之间共享时,它应该在某个视图目录中,就像你实际上有一个images_controller一样,目录应该被称为图像)@H_403_3@