Rails:渲染不显示实例变量值的模板

时间:2014-02-01 22:15:48

标签: ruby-on-rails templates ruby-on-rails-4 render

我正在尝试渲染位于页面中另一个控制器内的模板。出于某种原因,实例变量值没有显示在我拥有render的页面中。虽然,当我转到相应的HTML页面时,它会显示出来。

我对Rails很陌生,也许我错过了render显而易见的东西。这是一些信息 -

这是我template.html.erb的模板。

<a href="http://test.com" target="_blank">
    <div class="panel">
      <div>
        <img src="http://someimage" />
      </div>
      <div class="title">
        <%= @title %>
      </div><div class="text"><%= @text %></div>
    </div>
</a>

这是控制器内部的相应方法 - content_controller.rb

def template
   @title = 'Test Title'
   @text = 'Test Content'

   respond_to do |format|
      format.html
   end
end

我正试图以page.html.erb这种方式呈现它 -

render :template => 'content/template

如果我导航到@title,我可以看到@textcontent/template.html的值,但是当我转到page.html

如果有人可以帮助我,那就太棒了。

2 个答案:

答案 0 :(得分:1)

为page.html提供服务的路由是否与content / template.html路由进行相同的template操作?如果没有,那就是问题所在。实例变量在该操作中初始化,因此如果page.html不使用它,那就解释了您所看到的内容。

答案 1 :(得分:0)

感谢Mori的回答。这是我做的 -

  1. get_content

    中创建了一个名为content_helper的辅助方法
    def get_content
        @title = 'Test Title'
        @content = 'Test Content'
    end
    
  2. 我从页面操作

    中调用了get_content方法
    include ContentHelper
    
    def page
      get_content
    end