Нечетная проблема cancan ... работает на машине разработки, а не на сервере - PullRequest
2 голосов
/ 09 марта 2012

Моя модель способностей для канкана работает хорошо уже 6 месяцев.Одним из контроллеров, который был вокруг все это время, является QuestionController.Недавно я добавил еще один контроллер, модель и страницу индекса.Имя контроллера - QuestionsBasicsController.В моей модели способностей у меня есть:

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

В верхней части QuestionsController и QuestionsBasicsController у меня есть:

load_and_authorize_resource

Я могу получить доступ к индексной странице для QuestionsController и QuestionsBasicsController на моемразработка машины.После того, как я загрузил модель способностей на свой сервер, я перезапустил сервер.Я могу получить доступ к странице индекса для вопроса, но не для вопросов на моем сервере.На моей машине разработки у меня есть ruby ​​1.9.2, а на моем сервере 1.8.7.Может ли это быть разницей в версии Ruby?

ОБНОВЛЕНИЕ: для чего стоят названия моделей, которые начинаются с названия другой модели, вызывают проблему ... по крайней мере, из-за того, как я построил свою модель способностей,Кроме того, недавно я нашел другое название модели, которое отлично работало, но для CanCan.Я думаю, что это могло быть зарезервированное слово, но я не уверен в этом.Когда я изменил название модели, контроллера, маршрута и кода на новое имя, оно прошло CanCan.Никаких размышлений о CanCan, хотя ... Я думаю, что это УДИВИТЕЛЬНЫЙ, УДИВИТЕЛЬНЫЙ, УДИВИТЕЛЬНЫЙ!Спасибо, Райан Бейтс!

1 Ответ

2 голосов
/ 19 марта 2012

согласен с dleatham, попробуйте разбить исходное утверждение на 2 строки:

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