rails在一次调用中渲染多个部分

问题描述:

有人可以建议我一个很好的方法来返回方法中的多个东西,并将它们全部渲染为视图中的不同部分?rails在一次调用中渲染多个部分

def tasks 
    if task1.present? 
    ['task1_summary', task1: task1] 
    if task2.present? 
    ['task2_programs', task2: task2] 
    if task3.present? 
    ['task3', program: task3] 
    else 
    [empty: ''] 
    end 
    end 

笔者认为:

= render *tasks 

上面的代码将只呈现一个部分。

我试图找出一个办法,如果上述所有条件都满足

+0

为什么你不能返回一个数组数组,然后在你的视图中迭代它,像现在这样为每个数组调用render? – Chandranshu

+0

我试图避免在视图中的任何一种逻辑。但如果这是我可以尝试的唯一方法 – newbie

def tasks 
tasks_array = [] 

    tasks_array << ['task1_summary', task1: task1] if task1.present? 

    tasks_array << ['task2_programs', task2: task2] if task2.present? 

    tasks_array << ['task3', program: task3] if task3.present? 

end 

将返回你的任务组。你可以在你看来用.each来通过它们。

试图返回的参数数组,你再传递到渲染调用,将返回所有的谐音:

在厄尔布:

<% tasks.each do |task| %> 
    <%= render task %> 
<% end %>