What am I doing wrong here? I am using cancan on Rails 3. In my
Ability class, I've got:
class Ability
  include CanCan::Ability
  def initialize(user)
    user ||= User.new # guest user, for users who are not registered
or don't have an account yet
    if user.role? :admin
      can :manage, :all
    elsif user.role? :artist
      can :read, [Artist, Painting, Video]
      can :manage, Video do |video|
        video.try(:user) == user
      end
    else
      can :create, [Artist]
      can :read, :all
    end
  end
end
In VideosController#index, I have:
          <% if can? :update, song %>
            <div class="interaction clearfix">
              <%= link_to 'edit', '#' %>
              <%= link_to 'delete', '#', :class => 'last' %>
            </div>
          <% end %>
I get:
undefined method `user' for :index:Symbol
             
            
              
              
              
            
            
           
          
            
            
              By the way. I am using Devise, if that even matters
             
            
              
              
              
            
            
           
          
            
            
              Small code typo. In VideoController#index. It should have been:
          <% if can? :update, video %>
            <div class="interaction clearfix">
              <%= link_to 'edit', '#' %>
              <%= link_to 'delete', '#', :class => 'last' %>
            </div>
          <% end %>
             
            
              
              
              
            
            
           
          
            
            
              Any thoughts? Also worth noting that Video and Paintings inherit from
Media. Media is an STI
             
            
              
              
              
            
            
           
          
            
            
              What is the last error you got?
             
            
              
              
              
            
            
           
          
            
            
              undefined method `user' for :index:Symbol
             
            
              
              
              
            
            
           
          
            
            
              does cancan expect me to have a user method in my user model or
something?
             
            
              
              
              
            
            
           
          
            
            
              Ok... I must have been using old cancan code. Back when I was still on
Rails 2.3.8.
The new doc says: can :manage, Painting, :artist_id => user.artist.id
Which now seems to work without any errors