Ruby on Rails渲染部分未定义的局部变量

时间:2017-11-21 20:38:35

标签: ruby-on-rails ruby partial-views partial

我的ruby on rails应用程序中有一个更改头像弹出窗口。我试图将它用于多个模型,例如更改个人资料图片或产品图片。

我创建了一个视图,并尝试使用user.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>

在我的_index.html.erb文件中,该文件位于views / change_avatar:

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

但是,我得到了未定义的局部变量或方法`par&#39;对于&#34;当我打开user.html.erb文件。

我无法看到我失踪的东西。

有什么建议吗?

感谢。

1 个答案:

答案 0 :(得分:3)

我过去也经历过这个问题而不完全确定导致它的原因但在我的情况下,它似乎与深度嵌套的部分有关(但仅限于几个视图)。

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

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

希望这有帮助。