我遇到輕微問題。Rails應用程序控制器方法在兒童中未定義
我有以下控制器設置出像這樣:
class ApplicationController < ActionController::Base
attr_accessor :perms
helper_method :set_permissions
def set_permissions *permissions
self.perms = permissions
end
end
class ApiController < ApplicationController
set_permissions :api
end
class Api::TokenController < ApiController
set_permissions :none
end
的Rails似乎認爲set_permissions
即使它顯然有繼承鏈中不存在(我甚至把它作爲一個輔助方法)。
該錯誤發生在TokenController
內。
此外,我把它作爲一個輔助方法,因爲,老實說,它以前沒有工作,我認爲它可以解決它。
我在做什麼錯?
p.s.我已經嘗試將Api::
附加到api控制器,因爲它位於api目錄中,但它什麼都不做。編輯:對不起,錯誤的控制器,我需要更多的關注。編輯:對不起,錯誤的控制器,我需要更多的關注。
編輯:好了,我把下面的代碼:該DEF下set_permissions
在ApplicationController
和子控制器:
ap 'ApplicationController responds'
ap self.respond_to?(:set_permissions)
,併爲所有這些迴應假的,它被定義成這是怎麼回事?
p.s. ap是awesome_print
,就這麼你知道。
編輯:因此,加入self.
到def set_permissions
,現在它正在回升,但現在它將會
undefined method `perms=' for ApiController:Class
編輯: 我改變self.
到@
它固定provlem,我也忘了投入我有一個attr_accessor
代碼(更新代碼來顯示這一點。不要控制器不喜歡attr_accessor或財產以後?
您在'set_permisions'和'set_permissions'之間有所不同 - 是問題所在嗎? –
哎呀,沒有注意到拼寫錯誤,謝謝指出。 – Thermatix
這是否解決了它? –