如何从部分内部而不是具有相同名称的局部变量中访问:locals哈希?

时间:2014-08-19 19:44:01

标签: ruby-on-rails partials

除了好主意之外,我想知道如何从部分内部访问:locals哈希而不是同名的局部变量?

我试图尝试探索一种可能更有效的模式,我经常发现自己涉及默认的部分值:

:locals => { :opts => {:myvar => @myvar}}

然后在里面部分:

opts.reverse_merge!(defaults)

写作会更加清晰(特别是当opts变得更多时):

:locals => { :myvar => @myvar}

然后在里面部分:

opts => defaults.merge(local_hash)

1 个答案:

答案 0 :(得分:8)

您可以通过调用locals来访问已呈现部分的local_assigns哈希中的所有内容。但是,我认为你会发现有更多的进入而不是你期望的(因为Rails为了你的方便而创建了一些自己的本地分配)。所以你的方法可能需要调整......但这就是你要做的。