[報錯紀錄]NoMethodError in Admin::JobsController#index

Published on:

位置:
http://localhost:3000/admin/jobs 頁面

錯誤訊息:
undefined method `require_is_admin' for #Admin::JobsController:0x007f94f9ca9730 Did you mean? require_or_load

問題描述:
替換admin位置的時候,出現報錯:
undefined method `require_is_admin’ for #Admin::JobsController:0x007ff9a2a19ed0 Did you mean? require_or_load

debug思路:
檢查require_is_admin 有沒有拼錯或路徑錯誤

錯誤排除方式:
def require_is_admin放錯controller
放到正確位置app/controllers/application_controller.rb
正常

> 其他觀察:
應該將 app/controllers/admin/jobs_controller.rb
的部分內容,移動到: app/controllers/application_controller.rb 里。
但是,我實際把文件移動到了: app/controllers/jobs/application_job.rb. 導致出錯。
而且出錯是不管你是不是admin都會報錯
但是將app/controllers/admin/jobs_controller.rb裡的before_action :require_is_admin
拿掉就沒有報錯,可是不是admin的人就可以登入http://localhost:3000/admin/jobs頁面了
所以這個方法是錯誤的~

但是代表app/controllers/admin/jobs_controller.rbapp/controllers/jobs/application_job.rb. 雖然是前後台,但是def不互通。必須要放到最外層的app/controllers/application_controller.rb 才能給所有的controller使用

Comments

comments powered by Disqus