Ruby on Rails 渲染部分未定义的局部变量
Ruby on Rails render partial, undefined local variable
我在 rails 应用程序的 ruby 中有一个更改头像弹出窗口。我正在尝试将它用于多个模型,例如更改个人资料图片或产品图片。
我创建了一个视图并尝试使用 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>
在我位于 views/change_avatar 下的 _index.html.erb 文件中:
<h1><%= par %></h1>
但是,当我打开 user.html.erb 文件时,我得到 "undefined local variable or method `par' for"。
我看不到我错过了什么。
有什么建议吗?
谢谢。
我过去也遇到过这个问题,但不完全确定是什么原因造成的,但就我而言,它似乎与深度嵌套的部分有关(但仅针对少数视图)。
解决方案是从 local_assigns 哈希访问局部变量。我倾向于做的是将它分配给页面顶部的局部变量,如下所示:-
<% par ||= local_assigns[:par] %>
希望对您有所帮助。
我在 rails 应用程序的 ruby 中有一个更改头像弹出窗口。我正在尝试将它用于多个模型,例如更改个人资料图片或产品图片。
我创建了一个视图并尝试使用 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>
在我位于 views/change_avatar 下的 _index.html.erb 文件中:
<h1><%= par %></h1>
但是,当我打开 user.html.erb 文件时,我得到 "undefined local variable or method `par' for"。
我看不到我错过了什么。
有什么建议吗?
谢谢。
我过去也遇到过这个问题,但不完全确定是什么原因造成的,但就我而言,它似乎与深度嵌套的部分有关(但仅针对少数视图)。
解决方案是从 local_assigns 哈希访问局部变量。我倾向于做的是将它分配给页面顶部的局部变量,如下所示:-
<% par ||= local_assigns[:par] %>
希望对您有所帮助。