0

Может ли кто-нибудь предложить мне хороший способ вернуть несколько вещей в методе и отобразить все их как разные частичные представления в представлении?рельсы визуализируют частичные частицы в одном вызове

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

Почему вы не можете вернуть массив массивов, а затем перебрать его в своем представлении, вызывая рендер для каждого, как вы сейчас делаете? – Chandranshu

+0

Я пытался избежать любой логики во взглядах. но если это единственный способ, я могу попробовать это – newbie

ответ

0
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 на ваш взгляд.

0

Try возвращает массив аргументов, которые вы затем перейти к визуализации вызова:

В Эрба:

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