如何在Rails中呈现带有“可变”局部和多个局部变量的集合?

时间:2018-12-27 14:16:46

标签: ruby-on-rails

控制器创建一个包含要渲染的部分名称的数组。

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

我希望这有点清楚,在此先感谢您的帮助。

0 个答案:

没有答案