微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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中,否则必须将它们放在相应的帮助文件中.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐