2012-07-31 62 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