Rails 4 - Pundit - crear política

Estoy tratando de descubrir cómo usar pundit en mi aplicación Rails 4.

Tengo una vista de perfil en la que quiero mostrar un enlace para crear un nuevo proyecto, sujeto a la autorización del experto.

He probado cada una de las siguientes formulaciones:

 <%# if policy(Project.new).create? %>
                            <%# if policy(Project).create? %>
                            <%# if policy(@project).create? %>
                            <%# if policy(Projects).create? %>
                            <% if policy(project).create? %>


                             <%= link_to 'CREATE A, PROJECT', new_project_path, :class=>"btn btn-info"  %>
                            <% end %> 

La asociación entre proyecto y perfil es:

Proyecto

belongs_to :profile

Perfil

has_many :projects, dependent: :destroy

Mi política de proyecto tiene:

def new?
        true
        # create?
    end

    def create?
        true

    end

cuando intento usar esta línea en la vista de perfil:<% if policy(Project).create? %>

Me sale un error que dice:

número incorrecto de argumentos (dado 2, esperado 0)

cuando intento usar esta línea en la vista de perfil:<% if policy(@project).create? %>

Me sale un error que dice:

número incorrecto de argumentos (dado 2, esperado 0)

cuando intento usar esta línea en la vista de perfil:<% if policy(Projects).create? %>

Me sale un error que dice:

incapaz de encontrar la política de cero

cuando intento usar esta línea en la vista de perfil:<% if policy(project).create? %>

Me sale un error que dice:

variable local indefinida o método `proyecto 'para <#: 0x007faf5255d468> ¿Quiso decir? URL del proyecto

¿Hay algo especial que deba hacer para probar la autorización del proyecto si la página de visualización está en un modelo diferente (por ejemplo, perfil, autorización de prueba para ese perfil en cuanto a si puede crear un proyecto)? Estoy atrapado y adivinando cómo resolver este problema.

En mi controlador de proyectos, tengo un método de creación con:

def create
    @project = Project.new(project_params)
    @project.profile = current_user.profile

    respond_to do |format|
      if @project.save
        format.html { redirect_to @project }
        format.json { render :show, status: :created, location: @project }
      else
        format.html { render :new }
        format.json { render json: @project.errors, status: :unprocessable_entity }
      end
    end
  end

El iniciador de la política:

class ProjectPolicy < ApplicationPolicy

    attr_reader :user, :record

  def initialize(user, record)
    @user = user
    @record = record
  end

Respuestas a la pregunta(2)

Su respuesta a la pregunta