【发布时间】:2013-11-21 17:48:48
【问题描述】:
我正在尝试在模型级别使用声明式授权,使用查询重写功能来过滤 html 选择选项,如下所示:
型号:
class TreatmentClinic < ActiveRecord::Base
def self.filtered_by_user_context
with_permissions_to(:read)
end
end
查看(新操作):
<%= form_for(@something) do |f| %>
<%= f.select :id, TreatmentClinic.filtered_by_user_context.collect {|t| [ t.name, t.id ] }, {:include_blank => 'Please select'} %>
<%= f.submit %>
<% end %>
authorization_roles.rb:
role :some_role do
has_permission_on :treatment_clinics do
to :read
if_attribute :id => '1'
end
end
我正在使用巫术,并且在声明性授权下可以很好地工作;声明式授权权限在控制器和视图级别工作正常,但上面的选择抛出此错误:
No matching rules found for [:read] for #<Authorization::AnonymousUser:0x007fd257c00090 @role_symbols=[:guest]> (roles [:guest], privileges [:read, :manage], context :treatment_clinics).
有什么想法吗?
【问题讨论】:
标签: ruby-on-rails-3 declarative-authorization sorcery