0

コントローラに「フォロー」および「フォロー解除」というアクションがあります。
明らかに、CanCanはこれらのアクションを認識しないため、これらのアクションが実行されたときにアクセスが拒否されたことが示されます。

alias_action :follow, :unfollow :to => :read

この行をability.rbに追加すると、正常に機能するようになりました。
しかし、問題は、ユーザーがログインしていないときに、次のようなエラーが表示されることです

syntax error, unexpected ':', expecting keyword_end
    alias_action :follow, :unfollow :to => :read

ユーザーがログインしているときにのみこれらのアクションを有効にします。
どうすればよいですか?ability.rbに何を追加する必要がありますか?

4

2 に答える 2

1

カンマが欠落しているようです:

alias_action :follow, :unfollow, :to => :read

ここを参照してください

于 2013-01-01T18:48:17.650 に答える
1

コントローラがUsersControllerであると仮定すると、これは、ability.rbfieで実行できます。

def initialize(user)
  user || = User.new
  if user.roles.include?('tweeple')    #Assuming the user with role tweeple can follow/ unfollow
    can [:follow, :unfollow], User
  end
end
于 2013-01-01T18:51:29.657 に答える