我的康康舞能力模型已经运行良好 6 个多月了。 QuestionsController 是一直存在的 Controller 之一。我最近添加了另一个 Controller 、模型和索引页。 Controller 名称是 QuestionsBasicsController。在我的能力模型中,我有:
if user.permission >= 8 # admin
can :manage, [Question, QuestionsBasic]
end
在 QuestionsController 和 QuestionsBasicsController 的顶部我有:
load_and_authorize_resource
我可以在我的开发机器上访问 QuestionsController 和 QuestionsBasicsController 的索引页面。将能力模型上传到服务器后,我重新启动了服务器。我可以访问服务器上 Questions 的索引页,但不能访问 QuestionsBasic 的索引页。在我的开发机器上,我有 ruby 1.9.2,而在我的服务器上,我有 1.8.7。难道是Ruby版本的差异?
更新:对于以另一个模型的名称开头的模型名称的值(value)而言,会导致问题,...至少以我构建能力模型的方式而言。此外,我最近发现了另一个运行良好的模型名称,但适用于 CanCan。我认为这可能是一个保留词,但我对此并不肯定。当我将模型、 Controller 、路由和代码的名称更改为新名称时,它通过了 CanCan。但没有对 CanCan 的反射(reflection)……我认为它太棒了,太棒了,太棒了!谢谢瑞安·贝茨!
最佳答案
同意 dleatham 的观点,尝试将原始语句分成两行:
if user.permission >= 8 # admin
can :manage, Question
can :manage, QuestionsBasic
end
关于ruby-on-rails-3 - 奇怪的 cancan 问题...适用于开发机器,但不适用于服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9624958/