0

gems オーソリティと roify を使用して、一連のサブジェクトに対するユーザー権限を管理しています。各サブジェクトは、ユーザーが:adminそのサブジェクトのロールを持っている場合にのみ表示できます。ビュー内のコード:

   <% if (current_user.has_role? :admin, @subject) %>
        ADMIN
    <% end %>

    <% if @subject.readable_by?(current_user)%>

    #some other code

    <% end %>

オーソライザーのコード:

class SubjectAuthorizer < ApplicationAuthorizer
  # can the user view the subject?
  def self.readable_by?(user)
    user.has_role? :admin, @subject
  end

end

私の問題は、ADMIN 部分は表示されますが、ページの残りの部分は表示されないことです。ただし、2 つの if 条件の真偽値は同じでなければなりません。誰でも間違いを見つけることができますか?

4

1 に答える 1

2

@subjectオーソライザーでは使用できません。resource代わりに使用する必要があります。

于 2014-11-27T21:16:02.073 に答える