我试图在应用程序控制器中设置一个变量,以便将应用程序布局调整为最佳状态。Rails:如何获取应用程序布局的应用程序控制器变量
如果我使用:
@var = 'foo'
...应用程序布局不知道我在说什么
如果我使用全局变量
$var = 'foo'
.. 。应用程序布局起作用。但是,我的功能测试不起作用:
# application layout
# my var is an AR object
$var.name
# Stock functional test
class HomeControllerTest < ActionController::TestCase
test "should get index" do
get :index
assert_response :success
end
end
# test:functionals
ActionView::Template::Error: undefined method `name' for nil:NilClass
我需要此var可用于应用程序布局(每页)。思考?我需要使这个会话变种?
更新
基于一些其他职位我读,是考虑将这些应用程序中的助手,然后从布局打电话给他们最好的做法?
# Application helper
def get_var
Product.first
end
# Application layout
<% @var = get_var %>
<!DOCTYPE html>
<html lang="en">
<head>
...
这a)在我的浏览器和b)通过测试。这是最佳实践吗?有更简单/更好的方法吗?
变量正在设置w/o before_filter。事实上,如果我将它们设置为全局变量,应用程序布局可以看到它们。但a)我试图避免全局性和b)我的基本功能测试不知道他们(出于某种奇怪的原因) – jmccartie 2010-12-04 01:55:02