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以供將來部署,但我想確保在執行該過程之前有依賴關係。任何指導將不勝感激。