gpt4 book ai didi

ruby-on-rails - rails : How to get a applcation controller variable to my application layout

转载 作者:行者123 更新时间:2023-12-03 21:34:04 26 4
gpt4 key购买 nike

我试图在应用程序 Controller 中设置一个变量以冒泡到应用程序布局。

如果我使用:

@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 可用于应用程序布局(每个页面)。想法?我需要将它设为 session 变量吗?

更新

基于我正在阅读的其他一些帖子,将它们放在应用程序助手中,然后从布局中调用它们是否被认为是最佳实践?
# Application helper
def get_var
Product.first
end

# Application layout
<% @var = get_var %>
<!DOCTYPE html>
<html lang="en">
<head>
...

这 a) 在我的浏览器中工作,b) 通过测试。这是最佳做法吗?有没有更简单/更好的方法?

最佳答案

您是否尝试 before_filter 声明变量的方法以确保彼此的 Controller 调用它并将变量传递给相应的 View ?

class ApplicationController < ActionController::Base

before_filter :foo_function

def foo_function
@var = "foo"
end

end



如果@var 是一个 AR 对象而不是一个字符串,您确定您正确定义了模型名称和列名称吗?

关于ruby-on-rails - rails : How to get a applcation controller variable to my application layout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4351205/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com