我正在阅读有关实例变量的旧教程。
但是我无法将控制器中的de实例变量调用到VIEW。
查看:
<html>
<head>
<title> title </title>
</head>
<body>
<p> line 1 </p>
<p> <%= @text %> </p>
</body>
</html>
控制器:
class MoviesController < ApplicationController
def movies
@text = "movietitle"
end
end
当我加载页面时,它只显示第1行。
如何调用实例变量@TEST?
答案 0 :(得分:2)
@test
变量应包含"movietitle"
,并且应正确打印两段。
也许额外的空间(因为漂亮的印刷)搞砸了?尝试:
<p>line 1</p>
<p><%=@text%></p>
编辑:
对于您展示的内容,您的控制器方法必须命名为index
而不是movies
答案 1 :(得分:1)
根据您的视频,这是您的问题 您为称为newaction的电影添加了一个新的控制器方法。在您的浏览器中,您可以有效地转到/ movies,调用电影的控制器方法索引并为电影呈现index.hmtl.erb。在index.html.erb中你尝试获取你在newaction中声明的变量,这是另一个完全不同的动作,当然,newaction中的任何内容都不能从索引视图中访问。 最大的问题是你似乎认为控制器方法就像从视图中调用的函数,它们不是。
阅读本文:http://guides.rubyonrails.org/routing.html
routes.rb中的代码如下所示。
resources :movies do
get 'newaction'
end
如果你这样做,你去/ movies / newaction并在newaction.html.erb里面显示标题,它会起作用。