Ruby-on-rails + Postgres: problème de configuration
-
28-09-2019 - |
Question
`m obtenir quelques problèmes après l'installation dans Windows 7 rubis 1.8.6, 2.3.8 rails, des pierres précieuses de base (aussi ruby-postgres) et l'IDE RubyMine de JetBrains.
Alors, après avoir créé un projet simple avec RubyMine (configuration par défaut PostgresSQL dans database.yml), je cours dans localhost: 3000, mais il semble être de ne pas reconnaître comme rien:
Quand je clique sur la page principale de Ruby on Rails à " A propos de l'environnement de votre application " il renvoie une erreur. « Nous sommes désolés, mais quelque chose a mal tourné » et même lorsque je crée un contrôleur simple avec une vue et ouvre la bonne URL, il indique le même problème
Je ne sais pas si le problème est sur la base de données ou quelque chose comme ça, mais aussi je voudrais savoir comment configurer dans database.yml.
Par défaut:
adapter: postgresql
encoding: unicode
database: (name of the project)_(type: test, production or development)
pool: 5
username: (name of the project)
password: (no password)
Qu'est-ce que je l'ai fait:
adapter: postgresql
encoding: utf-8
database: (name of database)_(type: test, production or development)
pool: 5
username: ruby
password: (no password)
host: localhost
port: 3000
Est-il juste?
La solution
en supposant que votre projet est appelé foo, et que vous avez créé les bases de données correctes dans Postgres, et postgres écoute sur le port par défaut sur localhost
development:
adapter: postgresql
encoding: utf-8
database: foo_development
pool: 5
user: ruby
Comme le port déclaré 3000 est l'endroit où les rails écoutes, ce qui va causer des problèmes. vous devez également vous assurer que le pga_hba.conf autorise les connexions à la base de données.
Autres conseils
Je ne sais pas beaucoup sur l'exécution Rails sous Windows, mais en regardant votre fichier database.yml ci-dessus, vous ne devriez pas dire port: 3000
. C'est le port par défaut pour l'application des rails pour fonctionner. Vous devez consacrions le port que PostgreSQL est en cours d'exécution, ce qui est généralement 5432.