2010-12-15 65 views
1

我很好奇最近DRY视图的最新状态。我有一个应用程序已经进行了三年半以上的发展,而现在的视图层并不是一个快乐的地方。Rails:基于角色的用户的DRY视图

首先是一个小背景,我有一个由几个不同用户组使用的应用程序,我需要添加更多。不同用户看到的内容有很大的重叠,但仍然有很多是每个组独有的。用户限制他们看到的内容和详细程度。这是您的基于标准角色的网络应用程序。

目前该应用程序正在使用局部变量(包含局部变量)和局部变量,局部变量使用局部变量,content_for块和帮助程序以及大量重复。

我在找什么,人们为了保持自己的意见干什么?

我开始看着Cells(http://cells.rubyforge.org/),但我想知道,还有什么解决这个问题。

你对复杂和基于角色的视图使用什么?

+0

我不认为一般的答案存在。 – Lichtamberg 2010-12-15 23:48:52

回答

1

我面临同样的问题/挑战。我已经开始实现Cell,但遇到了一堵墙,'content_for'不能以您期望的方式得到支持,并且无法使用单元格视图将内容添加到主布局。

这是Rails中的限制/ Cell使用Rails的方式,看起来并不是真的可以绕过。

如果你能忍受这个限制,我认为这是重复内容块的最佳解决方案。

稍微offtopic为我上述问题的最佳方案是:

如果整个小区需要在不同的内容块可以用来得到一个不错的API以下被渲染:

将下面的代码在application_helper.rb:

def render_cell_for(id, cell, action, options = nil, &block) 
    content_for id do 
    render_cell(cell, action, options, &block) 
    end 
end 

使用

<%=render_cell_for(:content_for, :cell, :action) %> 

在您的视图中在块的内容中呈现。