【问题标题】:how to pass locals into a partial rendered with to_partial_path如何将局部变量传递到使用 to_partial_path 渲染的部分中
【发布时间】:2013-07-13 05:34:39
【问题描述】:

我一直在寻找 here 并想知道是否可以将局部变量添加到用于呈现部分集合的速记符号中?
都不是:

<% for contact in @contacts %>
  <%= render contact, locals: {my_bool: true, project: @project} %>
<% end %>

也不:

<%= render @contacts, locals: {my_bool: true, project: @project} %>

似乎可以工作,有没有办法让它工作,或者这些部分不接受其他本地人的这样的参数?

【问题讨论】:

    标签: ruby-on-rails ruby partials


    【解决方案1】:

    正确的语法是,

     <%= render @contacts, my_bool: true, project: @project %>
    

    【讨论】:

      【解决方案2】:

      我现在无法对其进行测试,但我认为您需要指定您正在渲染部分内容以供本地人接受:

      <%= render partial: 'contact', locals: {my_bool: true, project: @project} %>
      

      顺便说一句,@project 作为实例变量可以从部分访问,所以在这里使用它有点多余。 my_bool 可以作为常规变量访问,而不是实例变量,请记住这一点。

      【讨论】:

      • 是的,你说得对,我只是喜欢明确,因为我发现它使维护代码更容易(尽管现在你说它是以创建一个变量为代价的,我反对这样做不必要的事情)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-28
      • 2016-01-13
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多