Ich lief heute Abend bei der Bereitstellung in ein Problem, und ich versuche, so schnell wie möglich zu behebenOberklasse Mismatch für Klasse CommentsController (TypeError), beste Möglichkeit zum Umbenennen?
Ich habe keine Ahnung, warum das passiert. Alles funktioniert gut lokal, aber nicht auf Heroku. Ich habe versucht, verschiedene Arten von Korrekturen nach der Recherche, aber ich muss möglicherweise auf diese Klasse CommentsController vollständig umbenennen (hoffentlich das funktioniert). Was ist der beste Weg, um das zu tun? Ich bin ziemlich neu in Rails, also brauche ich etwas Hilfe, um diese Änderungen richtig zu machen.
Hier ist, was die CommentsController sieht aus wie 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
Kommentare zu jedem Beitrag zugeordnet sind (Benutzer können auf Beiträge kommentieren). Ich werde bei Bedarf auch andere Codes hochladen.
Hier ist der Fehler von 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
Wenn ich in den Schienen app Ordner indizierte Suche fortgeschrittene lief, waren hier die entsprechenden Dateien, die
up kam- 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")
Haben Sie 'CommentsController' in anderen Dateien in Ihrer App deklariert? –
Können Sie die Frage mit Routen aktualisieren. –
das einzige, was ich seit der letzten (funktionierenden) Bereitstellung in Routen geändert habe, ist das Hinzufügen dieser Zeile. '/ Posts /: id/review" => "posts # review" ' – syk