我遇到轻微问题。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
这是否解决了它? –