2015-07-05 36 views
0

假设我有一个图像查看器部分,图像查看器显示给访问者和管理员。管理员应该有额外的按钮来删除/编辑图像,而对于访问者和管理员来说,其他一切都保持不变。什么是干净的方法可以让视图保持干爽,而且无处不在用if声明堵塞它们?在Rails的partials之间共享共同标记的干净方式是什么?

这里是我当前如何做:

image_partial.html.haml

.image 
    %img 
    if is_admin? 
    .admin-stuff-here 

什么是干净的方法来实现与分离的看法,并没有重复相同的标记相同的结果(管理员/人次)?

回答

2

如果所有管理功能嵌套在一个单一的DOM元素(不是整个HTML您_image_partial.haml.erb文件摊开),你可以有条件地包括一些_admin_controls.haml.erb部分。

也许这些嵌套在一个目录中是有意义的。

- app/views/_image_viewer 
    |- viewer.haml.erb 
    |- admin_control.haml.erb 

,然后内_viewer.haml.erb

.image 
    %img 
    = render partial "_image_viewer/admin_control" if is_admin? 
+0

,如果它是什么呢?这里就是这种情况 – Abdulaziz

+0

你问题中的代码表明它的确如此,这就是为什么我在这个假设下回答的原因。你能用更准确地反映问题的代码更新你的问题吗? – deefour

相关问题