部分动作继承轨道

时间:2015-02-02 15:31:27

标签: ruby-on-rails action partials

我问了一个关于为部分创建动作的问题here。有人建议我要么在视图中包含部分(部分用于),要么使其成为自己的视图(不再是部分视图)。这让我提出了一个不同的问题:

部分是否从显示它们的视图中继承动作?

编辑以回答第一条评论:

我的意思是,如果我有一个索引操作和索引视图,并且我在该视图中显示部分,部分是否会理解我为索引操作定义的变量?

2 个答案:

答案 0 :(得分:0)

好,

基于编辑:

理论上,你的部分知道控制器中定义的实例变量。所以你可以简单地在局部中调用它们。 然而,实际上将它们传递给部分变量是更常见,更好的做法:http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials 请参阅选项3.4.4:传递局部变量。

这使您的部分更有用。 否则,如果使用此部分重新声明所有控制器中的变量,则只能重复使用partial。

答案 1 :(得分:0)

是的,您偏向索引模板的一部分将知道与索引相同的变量。

请记住,保持部分依赖于实例变量不是好习惯,因为它们可以在任何地方重复使用!为了删除依赖关系,将它们作为局部变量发送到局部变量

所以你的index.html.slim(或html,或erb,无论你用什么)都可以:

render 'some_partial', items: @products

或您可能称之为的其他地方:

render 'some_partial', items: @active_products

或作为完整的表示法:

render partial: 'some_partial', locals: { items: @products }

希望你有了主意;)