我正在尝试渲染位于页面中另一个控制器内的模板。出于某种原因,实例变量值没有显示在我拥有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
,我可以看到@text
和content/template.html
的值,但是当我转到page.html
如果有人可以帮助我,那就太棒了。
答案 0 :(得分:1)
为page.html提供服务的路由是否与content / template.html路由进行相同的template
操作?如果没有,那就是问题所在。实例变量在该操作中初始化,因此如果page.html不使用它,那就解释了您所看到的内容。
答案 1 :(得分:0)
感谢Mori的回答。这是我做的 -
在get_content
content_helper
的辅助方法
def get_content
@title = 'Test Title'
@content = 'Test Content'
end
我从页面操作
中调用了get_content
方法
include ContentHelper
def page
get_content
end