如何从控制器中创建的视图访问rails中的数据?

时间:2015-07-27 14:16:39

标签: ruby-on-rails

我正在尝试将控件中的实例变量传递给视图。由于视图可以创建实例并获取数据,因此不确定我做错了什么。我也可以在控制台中获取数据。当我检查在控制器中实例化的实例时,它是零。我甚至无法传递一个字符串。有人能发现我的错误吗?

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以查看它们是否在干扰,但正如我所怀疑的那样,它们不是。

1 个答案:

答案 0 :(得分:2)

这是因为你在调用render之后创建了实例变量 尝试这样做

def index
  @Test = 'XXX'
  render layout: false
end