代码之家  ›  专栏  ›  技术社区  ›  Hilmi Yamcı

Ruby on Rails呈现部分未定义的局部变量

  •  2
  • Hilmi Yamcı  · 技术社区  · 7 年前

    我已经创建了一个视图,并试图在用户界面中用如下参数打开它。html。erb文件:

    <div id="myModal_change_avatar" class="modal-dialog fade-scale">
     <div class="modal-content">
      <div style="height: 100%;width: 100%" id="id_model_content">
       <%= render partial: 'change_avatar/index', locals: { par:'param'} %>
      </div>
     </div>
    </div>
    

    在我的索引中。html。erb文件位于views/change\u avatar下:

    <h1><%= par %></h1>
    

    但是,当我打开user时,我得到了“未定义的局部变量或方法'par'。html。erb文件。

    我看不出我错过了什么。

    有什么建议吗?

    谢谢

    1 回复  |  直到 7 年前
        1
  •  5
  •   David    7 年前

    我过去也遇到过这个问题,不完全确定是什么原因导致了这个问题,但在我的例子中,它似乎与深度嵌套的partials有关(但仅限于少数视图)。

    解决方案是从局部散列访问局部变量。我倾向于将其分配给页面顶部的局部变量,如下所示:-

    <% par ||= local_assigns[:par] %>
    

    希望这有帮助。