奇怪的cancan问题......适用于开发机器,但不适用于服务器

时间:2012-03-08 21:07:08

标签: ruby-on-rails-3 cancan

我的cancan能力模型已经运行了6个多月了。一直存在的控制器之一是QuestionsController。我最近添加了另一个控制器,模型和索引页面。控制器名称是QuestionsBasicsController。在我的能力模型中,我有:

if user.permission >= 8 # admin
  can :manage, [Question, QuestionsBasic]
end

在QuestionsController和QuestionsBasicsController的顶部,我有:

load_and_authorize_resource

我可以在我的开发机器上访问QuestionsController和QuestionsBasicsController的索引页面。在我将能力模型上传到我的服务器后,我重新启动了服务器。我可以在我的服务器上访问Question的索引页面,但不能访问QuestionsBasic。在我的开发机器上我有ruby 1.9.2而在我的服务器上我有1.8.7。它可能是Ruby版本的区别吗?

更新:因为以另一个模型的名称开头的模型的名称会导致问题,...至少以我构建我的能力模型的方式。另外,我最近发现了另一个型号名称,但是对CanCan来说效果很好。我认为这可能是一个保留的词,但对此并不积极。当我将模型,控制器,路由和代码的名称更改为新名称时,它通过了CanCan。虽然没有对CanCan的反思......我认为这真棒,太棒了,太棒了!谢谢,瑞安贝茨!

1 个答案:

答案 0 :(得分:2)

同意dleatham,尝试将原来的陈述分成两行:

if user.permission >= 8 # admin
  can :manage, Question
  can :manage, QuestionsBasic
end