2012-07-31 60 views
8

我使用private_pub将通知推送给订阅客户端给我的用户。在我的application.html.haml中我有:如何在生产中访问此辅助函数?

... 
= javascript_include_tag 'application' 
= subscribe_to "/#{@user.access_token}/notifications" 
... 

subscribe_to helper在开发中工作正常。当部署到生产,记录了以下错误:

ActionView::Template::Error (undefined method `subscribe_to' for #<#<Class:0x00000001f372e8>:0x00000001fded90>): 
    5:  = stylesheet_link_tag 'application', :media => 'all' 
    6:  = include_gon(:init => true) 
    7:  = javascript_include_tag 'application' 
    8:  = subscribe_to "/#{@user.access_token}/notifications" 
    9:  = csrf_meta_tags 
    10: 
    11: %body 
    app/views/layouts/application.html.haml:8:in `_app_views_layouts_application_html_haml__1867651381877570337_14592040' 

我怎样才能得到我的生产环境中访问这个helper方法?

+0

的确在生产你'束install'将它添加到的Gemfile后? – 2012-07-31 17:54:19

+0

是的,我的部署脚本运行捆绑软件安装 – 2012-07-31 18:26:25

+0

您运行的Rails版本是什么? – 2012-07-31 18:49:20

回答

3

这看起来像加载PrivatePub引擎中的错误。如果你看看engine.rb,你会发现它将PrivatePub视图助手添加为init的一部分。可能是一个错误,如果它正在加载开发,但不是生产环境。

打算创建一个配置/初始化是手动加载PrivatePub助手:

require 'private_pub/view_helpers' 
ActionView::Base.send :include, PrivatePub::ViewHelpers 
+0

我无法访问初始化程序中的private_pub/view_helpers。我得到一个LoadError – 2012-08-10 19:52:10

+1

你的生产宝石出了问题。我刚刚创建了一个新的Rails 3项目并测试了初始化程序,它的加载没有问题。如果需求失败,则意味着private_pub gem未加载。你用什么命令来运行你的rails服务器? – mguymon 2012-08-10 21:12:40

+0

是的,它看起来像我的Debian服务器与此失败,但在不同的服务器硬件堆栈上运行Ubuntu工作正常。 – 2012-08-14 19:01:39

0

是您的部署脚本开始王菲的rackup文件? rackup private_pub.ru -s薄-E生产

+0

是的,我可以加载faye.js文件就好了。当我部署rails应用程序时,找不到方法subscribe_to – 2012-08-05 18:34:06