所有查询默认为用户公司
问题描述:
我正在使用康康,并试图让它限制为特定公司显示的设备。所有查询默认为用户公司
我有一个很多用户的公司,只能看到属于该公司的设备。
我想康康舞能做到这一点在此基础上:
Rails 3 company account with many users, restrict access to data
所以,我想这个代码:
can :manage, Equipment do |equipment|
user.company == equipment.company
end
在设备控制器我有@equipment = Equipment.all
我想通只会拉该用户公司的设备,但当然它把它们全部拉出来。有没有简单的方法来做到这一点,或者我需要做什么@equipment = Equipment.find_by_company_id(current_user.company)
随时我只想拉那公司的设备。更糟糕的是,我想最终按照团体和部门进行细分,但不必强迫自己陷入更大的查询。我愿意接受任何事情,插件,建议,无论是解决这个问题的最快方法。
我可以在这个问题中添加更多的代码,但我不知道添加这一切真的会帮助这个问题。
非常感谢您
托比
答
尝试Equipment.accessible_by()
https://github.com/ryanb/cancan/blob/master/lib/cancan/model_additions.rb
这是我所得到的,当我尝试:'的accessible_by呼叫不能以块“可以”使用定义。 SQL无法确定:索引 –
也许你可以在没有块的情况下重写你的定义,例如:'can:manage,Equipment,:company => user.company' –
就是这样,谢谢!!!! –