0

管理者として Keywords テーブルの足場アクションが必要です。このコードは、サーバーを再起動してから削除Admin::/app/models/admin/keyword.rb、Web サイトを更新してエラーを取得Admin::し、モデルに再度追加すると機能し始めます。その瞬間から、すべてが正常に機能します。しかし、サーバーの起動後、次のようになりました: (Rails 4)

PG::UndefinedTable: ERROR: relation "admin_keywords" does not exist

/app/controllers/admin/keywords_controller.rb ソース:

class Admin::KeywordsController < ApplicationController
  def index
    @keywords = Admin::Keyword.all
  end
end

/app/models/admin/keyword.rb ソース:

class Admin::Keyword < ActiveRecord::Base
end

次の URL に移動します:

http://localhost:3000/admin/keywords

ルート.rb:

  namespace :admin do
    resources :keywords
  end

このエラーを修正するにはどうすればよいですか?

4

1 に答える 1

1

モデルに名前空間を追加する場合、データベース テーブルにもこの名前空間が含まれている必要があります。たとえば、モデルAdmin::Keywordはテーブルに関連付けられていadmin_keywordsます。

モデル内でモデルのテーブル定義self.table_name='your_table_name'メソッドをオーバーライドできます。

class Admin::Keyword < ActiveRecord::Base
  self.table_name = 'your_table_name'
end
于 2013-11-02T12:10:34.510 に答える