ruby-on-rails-3 - 奇怪的 cancan 问题...适用于开发机器,但不适用于服务器

标签 ruby-on-rails-3 cancan

我的康康舞能力模型已经运行良好 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/

相关文章:

ruby-on-rails - 如何将 CanCan 与多个设计模型集成?

ruby-on-rails - 使用 RSpec 测试嵌套的 CanCan 能力

ruby-on-rails - 使用事件管理 cancan 确定范围

ruby-on-rails - 带分页功能的 Google 自定义搜索 API

ruby-on-rails - 将 Wicked 与 Devise 结合使用作为注册向导

ruby-on-rails - Rails 仅显示当前用户关注的用户的帖子

ruby-on-rails - cancancan has_and_belongs_to_many 的能力

ruby-on-rails-3 - 推送到 Heroku 时出现问题。在其他地方运行 `bundle install` 并将更新后的 Gemfile.lock 添加到版本控制

ruby-on-rails - 我应该逃避我的 rails find 的条件吗?

ruby-on-rails - Cancancan嵌套资源授权