我正在尝试实现用户只能看到HIS应用程序,而不是包含所有用户的所有应用程序的“应用程序索引”。
我的标题:
<%= link_to "My Application ", current_user.application %>
我的能力:
if user.has_role? :speaker
can :read, Application do |application| # heres the problem
application.try(:user) == user
end
can :create, Application
can :update, Application do |application|
application.try(:user) == user
end
end
目前,用户可以访问“应用程序/索引”页面。但限制应该只允许他访问:
http://localhost:3000/applications/8 # 8 being his application
我缺少什么?
答案 0 :(得分:1)
可能不是最干净的方式,但这有效:
在index
行动中:
if current_user.has_role? :admin
@applications = Application.all
else
@applications = current_user.application
end
index.html.erb
中的
<% if current_user.has_role? :admin %>
<%= render @applications %>
<% else %>
<% @applications.title %> etc..
<% end %>
注意:current_user.application
是因为user
模型has_one :application