Оригинальный код выглядит следующим образом:переименовывать существующие рельсы модели и добавить пространство имен
# app/models/sso_configuration.rb
class SsoConfiguration < ActiveRecord::Base
end
# db/schema.rb
create_table "sso_configurations", force: true do |t|
...
end
Я должен переименовать модель и добавить пространство имен, так что я буду иметь Sso::SamlConfiguration
. Я изменил модель и таблицу базы данных.
# db/migrate20160225144615_rename_sso_configurations_to_sso_saml_configurations.rb
class RenameSsoConfigurationsToSsoSamlConfigurations < ActiveRecord::Migration
def change
rename_table :sso_configurations, :sso_saml_configurations
end
end
# db/schema.rb
create_table "sso_saml_configurations", force: true do |t|
...
end
# app/models/sso/saml_configuration.rb
module Sso
class SamlConfiguration < ActiveRecord::Base
end
end
Когда я открываю консоль рельсов, происходит следующее.
> Sso::SamlConfiguration
=> Sso::SamlConfiguration(Table doesn't exist)
> Sso::SamlConfiguration.new
=> PG::UndefinedTable: ERROR: relation "saml_configurations" does not exist
Моей первоначальная мысль была, что Namespaced модель должна, по соглашению, имеет название snakecase в качестве имени таблицы таким образом, что Foo::Bar
должны иметь соответствующую foo_bars
таблицы. Я что-то упустил с настройкой?
Я посмотрел на название разделяет пространства имен модели, 'класса SSO :: SamlConfiguration
Patrick