从两个不同的控制器在两个不同的地方渲染 rails 中的部分

Rendering a partial in rails, in two separate places, from two different controllers

我有两个控制器,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>

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

应该是等号:<%= render ... %>.

<% %> 执行 Ruby 代码,但不呈现结果。而 <%= %> 执行并呈现。