如何使用CanCan启用自定义操作?

时间:2013-01-01 18:41:29

标签: ruby-on-rails ruby-on-rails-3 cancan

我的控制器中有'跟随'和'取消关注'的操作 显然,CanCan将不会识别这些操作,以便在执行这些操作时显示拒绝访问。

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

我将此行添加到 ability.rb ,然后它现在正常工作。
但问题是当用户未登录时显示错误,如此

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

我只在用户登录时启用这些操作 我怎么能够?我应该添加什么 ability.rb

2 个答案:

答案 0 :(得分:1)

看来你错过了一个逗号:

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

请参阅here

答案 1 :(得分:1)

假设您的控制器是UsersController,您可以在ability.rb fie

中执行此操作
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