0
在部署我的Rails API應用的Heroku,我的體型與下面的錯誤而失敗:的Rails在Heroku:NameError:未初始化不斷ApplicationPolicy
-----> Detecting rake tasks
sh: 2: Syntax error: Unterminated quoted string
sh: 2: Syntax error: Unterminated quoted string
!
! Could not detect rake tasks
! ensure you can run `$ bundle exec rake -P` against your app
! and using the production group of your Gemfile.
! rake aborted!
! NameError: uninitialized constant ApplicationPolicy
/tmp/build_64dbe116b1bd38f520ae98d49690e476/sdotapi-86210153dc2b588aa7b0dc9a60799f5090c76f46/app/policies/user_setting_policy.rb:1:in `<top (required)>'
現在的問題是,我沒有看到這個NameError
我的本地開發框錯誤。這似乎暗示,我的Pundit
策略的路徑不會在Heroku上加載,而是在本地機器上發生。但我不知道爲什麼:
這裏是我的application.rb
的相關部分的樣子:
config.autoload_paths << Rails.root.join('lib')
Dir[Rails.root.join('app/policies/*.rb')].each &method(:require)
所在行的錯誤是:
class UserSettingPolicy < ApplicationPolicy
這兩個政策文件都在app/policies
。
任何關於可能發生的事情的想法都將被超級讚賞!
檢查你的github存儲庫中的那一行,你確定你沒有提交git之前推送給heroku不同的東西? –
@FabrizioBertoglio就這樣,版本是一樣的。 Github推動Heroku部署,因此使用相同的文件。你認爲可能會發生什麼? – geoboy
'ApplicationPolicy'定義在哪裏?看起來像'rails'沒有找到它。它是爲UserSettingPolicy設置的'super'類,因此rails需要導入該類的所有方法,但它找不到該類。 'ApplicationPolicy'與'Pundit'有關係嗎? –