私のレールアプリにactiveadmin
という管理インターフェースを追加しようとしています。私は正常にローカルに完了しましたが、herokuに展開した後にエラーが発生します。 私のようなデータベースの移行に必要なすべてのもの行っている:私は[mysitename].herokuapp.com/admin
に移動すると、それは以下のようなエラーになりますアクティブな管理者が、ローカルでperfetly動作していたエラーを表示するのはなぜですか?
config.consider_all_requests_local = true
:私は、エラーを確認するために生産を変更した
heroku run rake db:create
heroku run rake db:migrate
を:
ActiveRecord::StatementInvalid in ActiveAdmin::Devise::SessionsController#new
PG::UndefinedTable: ERROR: relation "admin_users" does not exist LINE 8: WHERE a.attrelid = '"admin_users"'::regclass^: SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, (SELECT c.collname FROM pg_collation c, pg_type t WHERE c.oid = a.attcollation AND t.oid = a.atttypid AND a.attcollation <> t.typcollation), col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum WHERE a.attrelid = '"admin_users"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
そして、私は私のHerokuのクローンを作成し、schema.rb
でadmin_users
が存在するかどうかを確認します。私はテーブルがschema.rb
にあることを発見しました。
マイroutes.rb
は次のとおりです。
Rails.application.routes.draw do
devise_for :admin_users, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)
devise_for :users
resources :users, only: :show
resources :posts do
resources :comments
resources :upvotes, only: :create
resources :downvotes, only: :create
end
root 'posts#index'
end
私active_admin.rb
は次のとおりです。
ActiveAdmin.setup do |config|
config.site_title = "Instapost"
config.authentication_method = :authenticate_admin_user!
config.current_user_method = :current_admin_user
config.logout_link_path = :destroy_admin_user_session_path
config.comments = false
config.comments_menu = false
config.batch_actions = true
config.localize_format = :long
config.favicon = 'favicon.ico'
end
私は多くのことを検索しました。しかし、どんな解決策もこの問題を解決することはできませんでした。誰かがこれについて知っていれば、私は問題を解決するのを助けてください。
テーブルが正常にHerokuの上に作成された実行? –
テーブルがヒロクで作成されていませんでした。 – Achyut
'db:migrate'を実行して、エラーを確認する必要があります。 'heroku run bash'を実行すると、対話的なシェルセッションを得ることができます。 –