Rails 3 If Statement с использованием переменной от контроллера к другому контроллеру (able.rb) - PullRequest
2 голосов
/ 19 сентября 2010

Я использую плагин Rails CanCan для обработки проверок прав доступа.

У меня есть следующие способности.

def initialize(user, projectid_viewing) 
 user ||= User.new
 if projectid_viewing == 8
  can :manage, :all
 else
  can :read, :all  
 end
end

projectid_viewing отправляется с:

class ProjectsController < ApplicationController
 before_filter :prepareCanCan, :only => [:show, :edit]
  def prepareCanCan
   @project = Project.find(params[:id])  
  projectid_viewing = @project.id
end

У меня есть 8 жестко закодированных выше для целей тестирования. и по какой-то причине он не работает в операторе if, я сделал это утверждение неправильно? Это всегда позволяет: управлять

У меня есть журнал контроллера проекта, поэтому я знаю, что значение, которое контроллер устанавливает в projectid_viewing, равно 8.

Идеи

1 Ответ

1 голос
/ 19 сентября 2010

Я пытаюсь понять ... В зависимости от проекта все пользователи могут редактировать его или могут редактировать все модели? Если бы это был только проект, я бы попробовал:

def initialize(user) 
  user ||= User.new
  can :manage, Project do |project|
    project.id == 8
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...