我试图在液体中求出一个条件迭代。这就是我所拥有的
{% capture title_tag %}
{% for teacher in course.teachers %}
{% if course.teachers.size == 1 %}
{{course.title}} with {{ teacher.name | escape }}
{% elsif course.teachers.size > 1 %}
{{ course.title }} with {{ teacher.name }}
{% endif %}
{% endfor %}
{% endcapture %}正如预期的那样,第一个'if‘条件运行良好,我得到了这样的输出
“艾萨克·牛顿数学入门”。
我的问题是elsif,因此当老师的人数大于1时,我就明白了
“数学入门与艾萨克牛顿介绍与埃隆马斯克数学”。
我真正想要的是
艾萨克·牛顿和埃隆·马斯克数学概论
我很感谢你的帮助。谢谢
发布于 2018-01-04 10:27:35
问题是您希望course.title被打印,而不是在循环中。
{% capture title_tag %}
{{ course.title }} with ⇐ !!!! HERE
{% for teacher in course.teachers %}
{% if course.teachers.size == 1 %}
{{ teacher.name | escape }}
{% elsif course.teachers.size > 1 %}
{{ teacher.name }}
{% endif %}
{% endfor %}
{% endcapture %}将名称与and连接更复杂,需要额外的编码。也许你应该用String#join
{% capture title_tag %}
{{ course.title }} with
{{ course.teachers.map { |t| t.name }.join(', ') }}
{% endcapture %}https://stackoverflow.com/questions/48093138
复制相似问题