渲染erb模板时遇到的问题[ruby]

时间:2011-07-25 01:48:24

标签: ruby-on-rails ruby instance-variables

我正在阅读有关实例变量的旧教程。

但是我无法将控制器中的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?

2 个答案:

答案 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中的任何内容都不能从索引视图中访问。 最大的问题是你似乎认为控制器方法就像从视图中调用的函数,它们不是。

  1. 阅读MVC模型的工作原理:http://guides.rubyonrails.org/getting_started.html
  2. 您必须在电影中创建newaction.html.erb视图
  3. 您需要将新操作操作添加到routes.rb文件
  4. 阅读本文:http://guides.rubyonrails.org/routing.html

    routes.rb中的代码如下所示。

    
    resources :movies do
      get 'newaction'
    end
    
    

    如果你这样做,你去/ movies / newaction并在newaction.html.erb里面显示标题,它会起作用。