【问题标题】:Partials action inheretance rails部分动作继承轨道
【发布时间】:2015-02-03 00:17:03
【问题描述】:

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

partials 是否从显示它们的视图中继承操作?

编辑以回答第一条评论:

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

【问题讨论】:

  • “继承动作”到底是什么意思?
  • 编辑回答。谢谢。

标签: ruby-on-rails action partials


【解决方案1】:

好的,

基于编辑:

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

这使您的局部更有用。 否则,只有在使用此部分的所有控制器中重新声明变量时,您才能重用部分。

【讨论】:

    【解决方案2】:

    是的,作为索引模板一部分的部分将知道与索引相同的变量。

    请记住,让局部变量依赖于实例变量并不是一个好习惯,因为它们可以在任何地方重用!为了消除依赖关系,将它们作为局部变量发送到局部变量中

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

    render 'some_partial', items: @products
    

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

    render 'some_partial', items: @active_products
    

    或作为一个完整的符号:

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

    希望你明白了 ;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-09
      • 2020-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-26
      相关资源
      最近更新 更多