1

RailsアプリでCancanを使用して認証を行おうとしていますが、問題が発生しています。ユーザーテーブルにadminとownerという名前の2つの列があり、どちらもブール値です。私のability.rbファイルは、これが真であるかどうかをチェックしてから、適切な権限を提供します。サインインしていないユーザーと管理者であるユーザーの権限が機能しているようです。ただし、所有者の許可は機能していないようです。この権限を利用しているリンクを自分のビューで表示できません。

PlacesControllerの上部にload_authorize_resourceを配置しました。

def initialize(user)
    user ||= User.new  # Guest user
    if user.admin?
        can :manage, :all
    else
        can :read, :all
        if user.owner?
            can :create, Place
        end
    end

    # can :read, :all
end

私はこれを管理者として見ることはできますが、所有者として見ることはできません...しかし、私は所有者として見ることができるはずです。

<% if can? :create, @place %>
    <%= link_to 'New place', new_place_path %>
<% end %>
4

1 に答える 1

0

あなたは書くべきです、

 <% if can? :create, Place %>
  <%= link_to 'New place', new_place_path %>
 <% end %>

オブジェクトではなくクラスレベルで作品を作成します。

于 2013-03-27T14:50:07.400 に答える