ruby-on-rails – ruby​​ on rails应用程序在辅助程序与控制器之间的广泛方法?

我有几个变量,我希望所有控制器访问.所以我在application_controller.rb中定义了它们:

before_filter :initialize_vars

  def initialize_vars
    @siteTitle = "my title"
    @companyName = "company"    
  end

没有问题.
我想用徽标做类似的事情,所以我创建了另一个用before_filter调用方法.

def logo
    image_tag("logo.jpg",:alt => "logo")
  end

徽标img的一个实例应链接站点根目录,因此我调用它:

<%=h link_to logo,root_path %>

但它在我的布局中不起作用!当我将我的logo方法添加到application_helper.rb时,一切都很完美. hhmmm.

什么/适合这些东西的适当位置?我的意思是因为我能够使它工作不正确!

我应该在application_controller中定义我的实例变量(我将其视为全局变量)和我帮助器中的logo方法,就像我已经完成的那样?我觉得我在这里缺少一些基本的理解,为什么他们需要去不同的地方.我不确定我是否正在调用“徽标”方法或者我正在使用它.我将使用我如何调用以及如何编写徽标方法,因为我觉得这两种方法都应该放在application_controller中.

想法?

谢谢!

解决方法

与渲染视图相关的函数放在辅助文件中.
它们通常生成HTML内容.如果在许多地方在应用程序中使用辅助方法,请将它们放在application_helper.rb中,否则必须将它们放在相应的帮助文件中.

由于您将在许多控制器中访问实例变量,因此可以像应用程序控制器一样在初始化它们.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...