multiple models not working

15 views
Skip to first unread message

Andrés Rdz-Macedo

unread,
Mar 29, 2015, 12:28:12 AM3/29/15
to canc...@googlegroups.com
hi, i am trying to deny access to edit and destroy the superpower aka "skill" for a volunteer

i am not sure if i am missing something

thanks in advance for your help, this is for a non profit volunteer page :)


(i am also using devise)


-------model ability------

class Ability
  include CanCan::Ability

  def initialize(user)
    user ||= User.new
    case user
    when Volunteer
      can [:update, :destroy], Volunteer, :volunteer_id => volunteer.id
    when Organization
      can :manage, :all
    end
  end
end

--------application controller------

def current_ability
     if volunteer_signed_in?
       @current_ability ||= Ability.new(current_volunteer)
     elsif organization_signed_in?
       @current_ability ||= Ability.new(current_organization)
     end
  end

----show html for volunteer--------

 <% @volunteer.superpowers.each do |power| %>
    <p><%= power.name %></p>
    <p><%= link_to 'Edit', edit_volunteer_superpower_path(power, :volunteer_id=>@volunteer.id) %>
       <%= link_to 'Destroy', volunteer_superpower_path(power, :volunteer_id=>@volunteer.id),
           method: :delete,
           data: {confirm: 'Are you sure'} %></p>
  <% end %>

----volunteer controller-----------

class VolunteersController < ApplicationController

  def index
    @events = Event.all
  end

  def show
    @volunteer = Volunteer.find(params[:id])
  end

  def edit
    @volunteer = Volunteer.find(params[:id])
    @superpower = Superpower.new
  end

  def update
    @volunteer = Volunteer.find(params[:id])

      if @volunteer.update(volunteer_params)
        redirect_to @volunteer
      else
        render 'edit'
      end

  end

  def destroy
    @volunteer = Volunteer.find(params[:id])
    @volunteer.destroy
    redirect_to volunteers_path
  end

  private
    def volunteer_params
      params.require(:volunteer).permit(:name, :email)
    end

end



--
Andrés Macedo
Reply all
Reply to author
Forward
0 new messages