2013-10-10 159 views
1

我在Rails應用程序中使用了feed_pa​​rser gem。它完全按照開發中的說明工作,也可以在生產控制檯中工作,但不會在生產Web服務器上加載。feed_pa​​rser gem在生產控制檯但在生產web服務器上工作

(注:它甚至我們的Ubuntu 12.04測試服務器上的精細,失敗10.04生產服務器上)

uninitialized constant - Project::FeedParser

我對我們網站的車型之一運行以下命令:

class Project < ActiveRecord::Base 

    def self.facebook_feed 
    url = "http://www.facebook.com/feeds/page.php?id=236004913152511&format=rss20" 
    posts = Project.parse_feed(url) 
    return posts 
    end 

    def self.blogspot_feed 
    url = "http://fundinggarage.blogspot.com/feeds/posts/default?alt=rss" 
    posts = Project.parse_feed(url) 
    return posts 
    end 

    private 

    def self.parse_feed(feed_url) 
    feed = FeedParser.new(:url => feed_url).parse 
    fj = feed.as_json 
    #fj[:items].first[:description] 
    posts = [] 
    fj[:items].take(4).each do |fp| 
     post = {} 
     doc = Nokogiri::HTML(fp[:description]) 
     img_srcs = doc.css('img').map{ |i| i['src'] } 
     post[:headline] = fp[:title] 
     post[:image] = "/assets/fg_image_placehloder.png" 
     post[:image] = img_srcs.first unless img_srcs.first.nil? 
     post[:url] = fp[:link] 
     post[:date] = fp[:published] 
     posts << post 
    end 
    return posts 
    end 
end 

在視圖:

<% Project.blogspot_feed.each do |fb| %> 
    <div class="grid_3"> 
     <div class="media other-post-item"> 
     <a href="<%= fb[:url] %>" class="thumb-left" target="_blank"> 
      <div class="blog-img"> 
      <img src="<%= fb[:image] %>" alt="<%= raw fb[:headline] %>" title="<%= raw fb[:headline] %>"> 
      </div> 
      <span class="be-fc-orange"> 
      <h4 class="rs title-other-post"><%= raw fb[:headline] %></h4> 
      <p class="rs fc-gray time-post pb10"><%= "#{time_ago_in_words(fb[:date])} ago" %></p> 
      </span> 
     </a> 
     </div> 
    </div><!--end: . other-post-item --> 
    <% end %> 

回答

1

的解釋中eter正在尋找要定義的FeedParser類,並且找不到它 - 錯誤表明它正在查找Project類,因爲它無法在其他地方找到它。

我會將require 'feed_parser'添加到類別聲明上方的Project模型的頂部。

我假定這是您正在使用的寶石:我想這

https://rubygems.org/gems/feed_parser

+0

,我得到一個錯誤:'在depend_on'救援:沒有這樣的文件來加載 - feed_pa​​rser(LoadError )' –

+0

在這種情況下,它根本不可用,請檢查您的捆綁配置?也可能是網絡服務器如何找到寶石 - 你是否在使用gemset? –

+0

我正在使用一個gemset,我刪除它,但仍然存在相同的問題。我也試過直接在服務器上安裝gem。 –

相關問題