控制器创建一个包含要渲染的部分名称的数组。
parts = ["part_a", "part_d", "part_q"]
我要渲染一个集合,而不是一次渲染一个集合。 所以我将零件映射到一个新对象:
parts.map! { |part| PartObject.new(part) }
PartObject看起来像
class PartObject
def initialize(part)
@part = part
end
def to_partial_path
@part
end
end
现在我可以渲染(以haml格式)
= render(parts, word: word)
有效。 问题是我想传递多个变量。
= render(parts, word: word, name: name)
返回:“未定义的方法`[]'
我尝试过:
= render(parts, locals: {word: word, name: name})
确实有效,有点。它给部分散列“本地”。不是我想要的 显然,我也宁愿不使用实例变量。 (我确定Im建立我的收藏集的方式很愚蠢。如果我仍然可以一次渲染一个变化的部分集而不是一次渲染一个部分集并传递所需的变量,那将不胜感激。)
this page helped me get this far
我希望这有点清楚,在此先感谢您的帮助。