我正在尝试将控件中的实例变量传递给视图。由于视图可以创建实例并获取数据,因此不确定我做错了什么。我也可以在控制台中获取数据。当我检查在控制器中实例化的实例时,它是零。我甚至无法传递一个字符串。有人能发现我的错误吗?
Controller尝试设置Test。我知道它被调用,因为如果我删除该行 "渲染:layout =>假"我可以看到效果。
class ViewviewerimageController < ApplicationController
def index
render :layout => false
@Test = 'XXX'
end
end
观点:
<!DOCTYPE HTML>
<html>
<head>
<%= stylesheet_link_tag "ERP" %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
<title>Image Data</title>
</head>
<body>
<%= render template: "layouts/header" %>
<%= render template: "layouts/sidebar" %>
<div id="content">
Test = <%= @Test %><br>
inspect = <%= @Test.inspect %><br>
</div>
<%= render template: "layouts/footer" %>
</body>
</html>
我得到的是:
Test =
inspect = nil
我遵循了几个不同的教程,但似乎他们遗漏了一些东西,我似乎无法解开它。我甚至删除了CSS和javascript以查看它们是否在干扰,但正如我所怀疑的那样,它们不是。
答案 0 :(得分:2)
这是因为你在调用render
之后创建了实例变量
尝试这样做
def index
@Test = 'XXX'
render layout: false
end