部分动作继承 rails
Partials action inheretance rails
我问了 here 关于为局部创建动作的问题。有人建议我要么在视图中包含一个局部视图(局部视图的用途),要么使其成为自己的视图(不再是局部视图)。这让我提出了一个不同的问题:
部分是否从显示它们的视图继承操作?
编辑以回答第一条评论:
我的意思是,如果我有一个索引操作和索引视图,并且我在那个视图中显示了一个部分,这个部分会理解我为索引操作定义的变量吗?
好的,
基于编辑:
理论上,您的部分知道控制器中定义的实例变量。所以你可以简单地在局部调用它们。
然而,将它们作为变量实际传递给局部变量更常见,也是一种很好的做法:http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials
请参阅选项 3.4.4:传递局部变量。
这使您的局部更有用。
否则,如果您在所有使用此部分的控制器中重新声明变量,则只能重用部分。
是的,作为索引模板一部分的部分将知道与索引相同的变量。
请记住,让局部变量依赖于实例变量不是好的做法,因为它们可以在任何地方重复使用!为了消除依赖性,将它们作为局部变量发送到局部
所以你的 index.html.slim(或 html,或 erb,无论你使用什么),可以有:
render 'some_partial', items: @products
或其他地方,您可以称它为:
render 'some_partial', items: @active_products
或作为完整符号:
render partial: 'some_partial', locals: { items: @products }
希望你明白了 ;)
我问了 here 关于为局部创建动作的问题。有人建议我要么在视图中包含一个局部视图(局部视图的用途),要么使其成为自己的视图(不再是局部视图)。这让我提出了一个不同的问题:
部分是否从显示它们的视图继承操作?
编辑以回答第一条评论:
我的意思是,如果我有一个索引操作和索引视图,并且我在那个视图中显示了一个部分,这个部分会理解我为索引操作定义的变量吗?
好的,
基于编辑:
理论上,您的部分知道控制器中定义的实例变量。所以你可以简单地在局部调用它们。 然而,将它们作为变量实际传递给局部变量更常见,也是一种很好的做法:http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials 请参阅选项 3.4.4:传递局部变量。
这使您的局部更有用。 否则,如果您在所有使用此部分的控制器中重新声明变量,则只能重用部分。
是的,作为索引模板一部分的部分将知道与索引相同的变量。
请记住,让局部变量依赖于实例变量不是好的做法,因为它们可以在任何地方重复使用!为了消除依赖性,将它们作为局部变量发送到局部
所以你的 index.html.slim(或 html,或 erb,无论你使用什么),可以有:
render 'some_partial', items: @products
或其他地方,您可以称它为:
render 'some_partial', items: @active_products
或作为完整符号:
render partial: 'some_partial', locals: { items: @products }
希望你明白了 ;)