NoMethodError: undefined method `may_approve?' for nil:NilClass with pundit and aasm gem, rspec












0















Hi I run my test pundit with machine state aassm gem but i get this error,
the @record is null , but in the documentation of pundit with this variable i get the object model.



NoMethodError:
undefined method `may_approve?' for nil:NilClass



this is my spec file syllabus_program_policy_spec.rb



require 'rails_helper'



RSpec.describe SyllabusProgramPolicy do
subject { SyllabusProgramPolicy }
include RolesUserConcern

permissions :approve? do
it "approver role can" do
expect(subject).to permit(approver)
end
it "creator role, cannot approve a silabus" do
expect(subject).not_to permit(creator)
end
end

end


This is my policy file



class SyllabusProgramPolicy < ApplicationPolicy
def approve?
true if ( @user.is_approver? && @record.may_approve? )
end

def send_to_approve?
true if ( @user.is_creator? && @record.may_send_to_approve? )
end

def refuse?
true if ( @user.is_approver? && @record.may_observe? )
end

def show?
true if ( @user.is_approver? || @user.is_creator? )
end

def update?
@user.is_creator?
end
end


this is my file ApplicationPolicy



class ApplicationPolicy
attr_reader :user, :record

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


Can help me










share|improve this question





























    0















    Hi I run my test pundit with machine state aassm gem but i get this error,
    the @record is null , but in the documentation of pundit with this variable i get the object model.



    NoMethodError:
    undefined method `may_approve?' for nil:NilClass



    this is my spec file syllabus_program_policy_spec.rb



    require 'rails_helper'



    RSpec.describe SyllabusProgramPolicy do
    subject { SyllabusProgramPolicy }
    include RolesUserConcern

    permissions :approve? do
    it "approver role can" do
    expect(subject).to permit(approver)
    end
    it "creator role, cannot approve a silabus" do
    expect(subject).not_to permit(creator)
    end
    end

    end


    This is my policy file



    class SyllabusProgramPolicy < ApplicationPolicy
    def approve?
    true if ( @user.is_approver? && @record.may_approve? )
    end

    def send_to_approve?
    true if ( @user.is_creator? && @record.may_send_to_approve? )
    end

    def refuse?
    true if ( @user.is_approver? && @record.may_observe? )
    end

    def show?
    true if ( @user.is_approver? || @user.is_creator? )
    end

    def update?
    @user.is_creator?
    end
    end


    this is my file ApplicationPolicy



    class ApplicationPolicy
    attr_reader :user, :record

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


    Can help me










    share|improve this question



























      0












      0








      0








      Hi I run my test pundit with machine state aassm gem but i get this error,
      the @record is null , but in the documentation of pundit with this variable i get the object model.



      NoMethodError:
      undefined method `may_approve?' for nil:NilClass



      this is my spec file syllabus_program_policy_spec.rb



      require 'rails_helper'



      RSpec.describe SyllabusProgramPolicy do
      subject { SyllabusProgramPolicy }
      include RolesUserConcern

      permissions :approve? do
      it "approver role can" do
      expect(subject).to permit(approver)
      end
      it "creator role, cannot approve a silabus" do
      expect(subject).not_to permit(creator)
      end
      end

      end


      This is my policy file



      class SyllabusProgramPolicy < ApplicationPolicy
      def approve?
      true if ( @user.is_approver? && @record.may_approve? )
      end

      def send_to_approve?
      true if ( @user.is_creator? && @record.may_send_to_approve? )
      end

      def refuse?
      true if ( @user.is_approver? && @record.may_observe? )
      end

      def show?
      true if ( @user.is_approver? || @user.is_creator? )
      end

      def update?
      @user.is_creator?
      end
      end


      this is my file ApplicationPolicy



      class ApplicationPolicy
      attr_reader :user, :record

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


      Can help me










      share|improve this question
















      Hi I run my test pundit with machine state aassm gem but i get this error,
      the @record is null , but in the documentation of pundit with this variable i get the object model.



      NoMethodError:
      undefined method `may_approve?' for nil:NilClass



      this is my spec file syllabus_program_policy_spec.rb



      require 'rails_helper'



      RSpec.describe SyllabusProgramPolicy do
      subject { SyllabusProgramPolicy }
      include RolesUserConcern

      permissions :approve? do
      it "approver role can" do
      expect(subject).to permit(approver)
      end
      it "creator role, cannot approve a silabus" do
      expect(subject).not_to permit(creator)
      end
      end

      end


      This is my policy file



      class SyllabusProgramPolicy < ApplicationPolicy
      def approve?
      true if ( @user.is_approver? && @record.may_approve? )
      end

      def send_to_approve?
      true if ( @user.is_creator? && @record.may_send_to_approve? )
      end

      def refuse?
      true if ( @user.is_approver? && @record.may_observe? )
      end

      def show?
      true if ( @user.is_approver? || @user.is_creator? )
      end

      def update?
      @user.is_creator?
      end
      end


      this is my file ApplicationPolicy



      class ApplicationPolicy
      attr_reader :user, :record

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


      Can help me







      rspec-rails pundit aasm






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 20 '18 at 0:29







      HalleyRios

















      asked Nov 20 '18 at 0:14









      HalleyRiosHalleyRios

      548




      548
























          0






          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53384449%2fnomethoderror-undefined-method-may-approve-for-nilnilclass-with-pundit-and%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53384449%2fnomethoderror-undefined-method-may-approve-for-nilnilclass-with-pundit-and%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          How to change which sound is reproduced for terminal bell?

          Can I use Tabulator js library in my java Spring + Thymeleaf project?

          Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents