加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails:如何获取应用程序布局的applcation控制

发布时间:2020-12-16 20:25:09 所属栏目:百科 来源:网络整理
导读:我正在尝试在应用程序控制器中获取一个变量集,以鼓励应用程序布局. 如果我使用: @var = 'foo' …应用程序布局不知道我在说什么 如果我使用全局变量 $var = 'foo' …应用程序布局工作.但是,我的功能测试不行: # application layout# my var is an AR object
我正在尝试在应用程序控制器中获取一个变量集,以鼓励应用程序布局.

如果我使用:

@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可用于应用程序布局(每页).思考?我需要使这个会话var吗?

更新

根据我正在阅读的其他几个帖子,最好将它们放在应用程序助手中,然后从布局中调用它们?

# Application helper
def get_var
   Product.first
end

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

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

解决方法

您是否尝试过before_filter声明变量的方法,以确保每个其他控制器调用它,并将该变量传递给相应的视图?

class ApplicationController < ActionController::Base

before_filter :foo_function

def foo_function
@var = “foo”
end

end

如果@var是AR对象而不是字符串,那么您确定模型名称和列名称是否正确定义?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读