使用部分和集合重构

Posted

技术标签:

【中文标题】使用部分和集合重构【英文标题】:Refactor using partials and collections 【发布时间】:2012-01-01 13:29:09 【问题描述】:

下面的代码可以通过使用partials的collection参数进行重构和简化吗?由于传入了“路径”局部变量,我看不到它是如何完成的。

<% @admins.each do |admin| %>
  <%= render :partial => 'person', :locals =>  :person => admin, :path => edit_admin_path(admin)  %>
<% end if @admins %>

<% @users.each do |user| %>
  <%= render :partial => 'person', :locals =>  :person => user, :path => edit_user_path(user)  %>
<% end if @users %>

【问题讨论】:

【参考方案1】:

利用rendering collections:

<%= render :partial => "person", :collection => @users + @admins %>

# in person.html.erb
path = person.admin? edit_admin_path(person) : edit_user_path(person)

【讨论】:

以上是关于使用部分和集合重构的主要内容,如果未能解决你的问题,请参考以下文章

Java集合框架---重构设计

FJoi2017 1月21日模拟赛 comparison(平衡树+thita重构)

使用java8的StreamAPI对集合计算进行代码重构

泛型集合的使用

C# 使用不可变集合或减少字段“CreateContactMapping”的可访问性

C#重构经典全面汇总