问题描述
我已经使用DockerCompose使用pgsql数据库创建了Rails应用程序。 似乎工作正常,但在运行应用程序时使用rails控制台时遇到问题。 我要做的是:
-
docker-compose up
。该应用程序开始运行。 - 然后我运行:
docker exec -it ID_OF_RAILS_CONTAINER bin/rails console
或“ docker-compose run CONTAINER_NAME rails console ”(我都尝试过)
控制台打开:
Creating transcendance_backend_run ... done
Running via Spring preloader in process 21
Loading development environment (Rails 6.0.3.4)
irb(main):001:0>
然后,当我尝试创建模型时,出现以下错误:
irb(main):001:0> rails g model user name guild_id banned
Traceback (most recent call last):
1: from (irb):1
NameError (undefined local variable or method `banned' for main:Object)
无论输入什么,都会出现此错误。
我尝试在我的gemfile中注释“ gem'spring-watcher-listen','〜> 2.0.0'”,但是现在当我尝试生成模型时,控制台永远挂起
有人知道如何解决此问题吗?
谢谢
解决方法
generate
是与Rails捆绑在一起的Rake任务。您可以像这样在容器中运行它
docker exec -it ID_OF_RAILS_CONTAINER bin/rails model user name guild_id banned
但是,除非将容器文件系统配置为与本地进行双向同步,否则生成的文件很可能不会出现在本地计算机上。