html - 无法使用 Rails 上的自定义布局访问视图上的实例变量
问题描述
我有一个带有自定义布局的控制器方法,我无法访问相应视图上的实例变量。
当我改回默认应用程序布局时。我可以访问实例变量。
pages_controller.rb
def payment_summary
render layout: "content"
if session[:new_company_id].present?
@company = Company.find(session[:new_company_id])
end
@var = "this is test"
end
payment_summary.html.erb
<div class="row">
<div class="col-sm">
Company Info
<div class="card">
<%= @company.name %>
<%= @var %>
</div>
</div>
<div class="col-sm">
Due Today
</div>
</div>
布局/content.html.erb
<!DOCTYPE html>
<html>
<head>
<%= csrf_meta_tags %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
<!-- Font Awesome 5 Free -->
<script src="https://kit.fontawesome.com/9da10782cc.js"></script>
<!-- for js cookie use -->
<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>
</head>
<body class="content-pages <%= body_class %>">
<%= yield %>
</body>
</html>
当我删除时,渲染布局内容一切正常。
解决方案
render
在这种情况下是“订单依赖”。将其向下移动,作为动作主体中的最后一条语句:
def payment_summary
if session[:new_company_id].present?
@company = Company.find(session[:new_company_id])
end
@var = "this is test"
render layout: "content"
end
推荐阅读
- java - 最后的分析失败了。后台任务页面上提供了更多详细信息
- python - 如何获取弹性搜索索引中列(字段)中不同值的计数
- c++ - 嵌套可变参数模板
- .net - 如何在 Visual Studio 2017 专业版中启用 ASP.Net Core 2.2
- cordova - Ionicv3 使用 minSdk 最多为 16 的兼容库或将此项目的 minSdk 版本增加到至少 19,
- jquery - 如何通过生成的jsonarray动态创建多个数据表?
- dkim - 如何使用 C# .Net 使用 Chilkat 将带有 DKIM 的电子邮件发送到 BCC
- ios - 部署到 Firebase 托管时,HTML5 视频无法通过 HTTPS 在 iOS 上播放
- mysql - mysql 子查询错误 [21000][1241] 操作数应包含 1 列
- php - WordPress:如何通过添加当前项目类来突出显示自定义帖子存档页面菜单项?