【问题标题】:Rendering a partial in rails, in two separate places, from two different controllers从两个不同的控制器在两个不同的地方渲染部分轨道
【发布时间】:2018-11-26 05:15:03
【问题描述】:

我有两个控制器,a_controller 和 b_controller。

在每个控制器中,我从位于 app/views/admin/shared 的共享文件夹中呈现部分内容。

a_controller 中的部分渲染如下:

<div id='status-change'>
    <% if !@item_a.has_been_used_in_production? %>
        <%= render partial: 'admin/shared/partial_name', locals: { item: @item_a, f: f } %>
    <% end %>
</div>

b_controller 中的部分渲染方式类似,但传入的变量不同。

<div id='status-change'>
    <% if !@item_b.has_been_used_in_production? %>
        <% render partial: 'admin/shared/partial_name', locals: { item: @item_b, f: f } %>
    <% end %>
</div>

partial 正在从 a_controller 正确渲染,但根本没有从 b_controller 渲染。我在任何一个页面上都没有收到任何错误消息。如果我在渲染空间之外键入任何内容,但在 if 语句内部,我可以看到文本。同样,我可以从部分内部复制和粘贴所有代码,并将其放在 if 语句中,它会正确显示。它似乎不想直接从局部渲染。

【问题讨论】:

  • 我投票结束这个问题作为离题,因为它是一个简单的语法错误,这个问题不会帮助任何其他想要解决他的问题的人。

标签: ruby-on-rails ruby view render partial


【解决方案1】:

应使用等号:&lt;%= render ... %&gt;

&lt;% %&gt; 执行 Ruby 代码,但不呈现结果。而&lt;%= %&gt; 执行和渲染。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 1970-01-01
    相关资源
    最近更新 更多