我很好奇这些日子对DRY观点的最新发展水平。我有一个应用程序已经发展了超过三年半,而且这些日子里的视图层并不是一个快乐的地方。
首先是一个小背景,我有一个应用程序,由几个不同的用户组使用,我需要添加更多。不同用户看到的内容之间存在大量重叠,但仍然有很多是每个群组独有的。用户可以限制他们看到的内容和细节。这是基于标准角色的Web应用程序。
目前,该应用程序正在使用一个丑陋的局部部分(使用局部变量),部分使用部分内容,content_for块和帮助程序,以及一大堆重复。
我正在寻找的是,这些天人们为了保持他们的观点干什么?
我开始关注细胞(http://cells.rubyforge.org/),但我想知道,还有什么可以解决这个问题。
您在复杂和基于角色的观看中使用了什么?
答案 0 :(得分:1)
我面临同样的问题/挑战。我已经开始实现Cell了但是碰到了墙,'content_for'不支持你期望的方式,并且不可能使用单元格视图将内容添加到主布局。
这是Rails中的一个限制/ Cell使用rails的方式,看起来并不是真的可以避免。
如果您能忍受此限制,我认为这是重复内容块的最佳解决方案。
对于我来说,针对上述问题的最佳解决方案略有偏离以下内容:
如果需要在不同的内容块中呈现整个单元格,可以使用以下内容来获得一个不错的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) %>
在您的视图中在块内容中呈现。