superclass mismatch for class CommentsController (TypeError), best way to rename?

model-view-controller, ruby, ruby-on-rails, ruby-on-rails-3

Solution

I had almost the same issue (server starts correctly, but RSpec fails with the same error). In my case, the problem was in ActiveAdmin (0.6.0). Don't know what exactly, maybe something related to namespacing.

Just downgraded to 0.5.0 On that version, I didn't have any problems with CommentsController.

Problem

I ran into some problem tonight while deploying and I'm trying to get this fixed asap I have no idea why this is happening. Everything works fine locally but not on heroku. I tried all sorts of different fixes after researching but I may have to resort to renaming this class CommentsController completely (hopefully that works). What is the best way to go about that? I'm pretty new to Rails so I need some help on making these changing correctly. Here's what the CommentsController looks like FYI: ``` class CommentsController < ApplicationController def new @post = Post.new(params[:post]) end def show @comment = Comment.find(params[:id]) respond_to do |format| format.js end end def create @post = Post.find(params[:post_id]) @comment = Comment.new(params[:comment]) @comment.micropost = @post @comment.user = current_user if @comment.save redirect_to(:back) else render partial: 'shared/_comment_form', locals: { post: @post } end end end ``` Comments are associated to each post (users are able to comment on posts). I will post other codes up as well if needed. Here's the error from heroku logs ``` 2013-04-09T05:55:19.454545+00:00 app[web.2]: /app/app/controllers/comments_contr oller.rb:1:in `<top (required)>': superclass mismatch for class CommentsControll er (TypeError) ``` Routes.db ``` SampleApp::Application.routes.draw do resources :posts, :path => "posts" resources :users do resources :messages do collection do post :delete_selected end end end ActiveAdmin.routes(self) devise_for :admin_users, ActiveAdmin::Devise.config resources :users do member do get :following, :followers end end resources :sessions, only: [:new, :create, :destroy] resources :posts, only: [:create, :destroy] resources :relationships, only: [:create, :destroy] resources :posts do resources :comments end root to: 'static_pages#home' match '/signup', to: 'users#new' match '/signin', to: 'sessions#new' match '/signout', to: 'sessions#destroy', via: :delete match '/post', to: 'static_pages#post' match '/post1', to: 'static_pages#post1' match '/faq', to: 'static_pages#faq' match '/review', to: 'users#review' match "/posts/:id/review" => "posts#review" end ``` When I ran advanced indexed search inside the rails app folder, here were the relevant files that came up ``` - comments_controller.rb - comments_helper.rb - comments_helper_spec.rb - comments_controller_spec.rb - 3 migration files - routes.rb (posted above) - schema.rb (table called "active_admin_comments" and table called "comments') - post.rb model (has_many :comments) - user.rb model (has_many :comments) - comment.rb model - active_admin.rb in config/initializer (any instance where I find "comments" has been #'ed out") ```

Original source