在渲染之前合并多个部分

时间:2013-08-23 20:24:24

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

下面的两个部分都是表格的元素,并且具有相同的结构。所以我希望首先合并这两个部分,然后将它们渲染到我的ajax调用中。这可能吗?

def refreshprojects
  @projects = Project.get(params[:username])
  render :partial => "project.elements.data", :locals => {:projects=>@projects }
  render :partial => "project.shared.elements.data", :locals => {:projects=>@projects_shared }
end

2 个答案:

答案 0 :(得分:1)

一种简单的方法是创建另一个视图refreshprojects,然后在其中呈现两个部分。

然后你会将refreshprojects呈现给你的ajax电话。

答案 1 :(得分:1)

考虑到@projects和@shared_projects是数组,你可以将它们组合成一个数组到一个部分而不是单独执行。

  

render:partial => “project.elements.data”,:locals => {:projects => @projects + @projects_shared}

如果UI的部分内容存在一些差异,您可以在视图中使用操作名称调用两个,即refreshprojects.html.erb,并从操作中删除两行。

  

render:partial => “project.elements.data”,:locals => {:projects => @projects}

     

render:partial => “project.shared.elements.data”,:locals => {:projects => @projects_shared}