有人可以建议我在方法中返回多个东西并在视图中将它们全部渲染为不同的部分吗?
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 :(得分:0)
尝试返回一个参数数组,然后将这些参数传递给渲染调用:
在Erb:
<% tasks.each do |task| %>
<%= render task %>
<% end %>
答案 1 :(得分: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
浏览它们。