2015-09-28 158 views
0

我試圖讓我的RoR應用在Elastic Beanstalk上運行,並且努力獲得rgeo gem的工作。我在Web服務器上得到的錯誤是:當代碼訪問由數據庫中的一個點數據類型支持的模型屬性發生在Elastic Beanstalk上使用rgeo設置RoR

I, [2015-09-28T11:26:54.982049 #21789] INFO -- : Completed 500 Internal  Server Error in 5ms (ActiveRecord: 2.6ms) 
F, [2015-09-28T11:26:54.983523 #21789] FATAL -- : 
NoMethodError (undefined method `point' for nil:NilClass): 
    lib/app/weather_service.rb:61:in `block in get_location' 
    .... 

這個錯誤。該錯誤通常是由於缺少依賴關係,即如此thread中所述的geos。所以我連接到底層的EC2實例,安裝geos並重新安裝了rgeo gem。這解決了軌道控制檯中的問題:

[[email protected] ~]$ cd /var/app/current 
[[email protected] current]$ rails c 
Loading production environment (Rails 4.2.4) 
irb(main):001:0> RGeo::Geos.supported? 
=> true 

但是,這並沒有解決Web服務器中的錯誤。我非常確定我沒有清楚地理解Elastic Beanstalk環境,並且可能直接更改底層的EC2實例不會使應用程序實例可以使用依賴關係。我明白,我需要將依賴關係添加到自定義AMI或ebextensions以供將來部署,但我想確保在執行該過程之前有依賴關係。任何指導將不勝感激。

回答

0

如果有人遇到同樣的問題,我確實找到了解決方案。這是我遵循的步驟:

相關問題