title: Unable to autoload constant POST, expected /example/app/models/post.rb to define it
body: <p>i have to do a comment that could comment other comment, and i follow this tutorial <a href="https://www.codementor.io/ruby-on-rails/tutorial/threaded-comments-polymorphic-associations" rel="nofollow noreferrer">here</a> but when i try to run the app program this give the following error:</p>
  
  <pre><code>Unable to autoload constant POST, expected /example/app/models/post.rb to define it
  </code></pre>
  
  <p>Extracted source (around line #79):</p>
  
  <pre><code>def find_commentable
    @commentable = Comment.find_by_id(params[:comment_id]) if params[:comment_id]
    @commentable = POST.find_by_id(params[:post_id]) if params[:post_id]
  end
  </code></pre>
  
  <p>and i really don t understand why appear this error if a have the model of post (and is like this):</p>
  
  <p>model post:</p>
  
  <pre><code>class Post &lt; ApplicationRecord
    belongs_to :city
    has_many :comments, as: :commentable
  end
  </code></pre>
  
  <p>and this is the model of comment if you need:</p>
  
  <pre><code>class Comment &lt; ApplicationRecord
  belongs_to :commentable, polymorphic: true
  has_many :comments, as: :commentable
  end
  </code></pre>
  
  <p>and here is the controller of comment:</p>
  
  <pre><code>class CommentsController &lt; ApplicationController
    before_action :set_comment, only: [:show, :edit, :update, :destroy]
    before_action :find_commentable
  
    # GET /comments
    # GET /comments.json
    def index
      @comments = Comment.all
    end
  
    # GET /comments/1
    # GET /comments/1.json
    def show
    end
  
    # GET /comments/new
    def new
      @comment = Comment.new
    end
  
    # GET /comments/1/edit
    def edit
    end
  
    # POST /comments
    # POST /comments.json
    def create
      @comment = @commentable.comments.new comment_params
      #@comment = Comment.new(comment_params)
  
      respond_to do |format|
        if @comment.save
          format.html { redirect_to @comment, notice: 'Comment was successfully created.' }
          format.json { render :show, status: :created, location: @comment }
        else
          format.html { render :new }
          format.json { render json: @comment.errors, status: :unprocessable_entity }
        end
      end
    end
  
    # PATCH/PUT /comments/1
    # PATCH/PUT /comments/1.json
    def update
      respond_to do |format|
        if @comment.update(comment_params)
          format.html { redirect_to @comment, notice: 'Comment was successfully updated.' }
          format.json { render :show, status: :ok, location: @comment }
        else
          format.html { render :edit }
          format.json { render json: @comment.errors, status: :unprocessable_entity }
        end
      end
    end
  
    # DELETE /comments/1
    # DELETE /comments/1.json
    def destroy
      @comment.destroy
      respond_to do |format|
        format.html { redirect_to comments_url, notice: 'Comment was successfully destroyed.' }
        format.json { head :no_content }
      end
    end
  
    private
      # Use callbacks to share common setup or constraints between actions.
      def set_comment
        @comment = Comment.find(params[:id])
      end
  
      # Never trust parameters from the scary internet, only allow the white list through.
      def comment_params
        params.require(:comment).permit(:publication, :author, :content, :reputation, :creation_date)
      end
  
      def find_commentable
        @commentable = Comment.find_by_id(params[:comment_id]) if params[:comment_id]
        @commentable = POST.find_by_id(params[:post_id]) if params[:post_id]
      end
  end
  </code></pre>
  
  <p>i really don t know why the program couldn t autoload Post.</p>