“`--jbuilder`的预期字符串默认值;在新的rails项目中得到true(布尔值)”错误

时间:2016-12-18 10:26:45

标签: ruby-on-rails ruby

我正在开始一个新项目,现在已经做了很多次。但是,这是我第一次遇到这个问题!

我正常创建应用rails new myapp -d postgresql

我使用rails db:create创建了数据库并运行了网站rails s。一切正常,我看到Rails欢迎/持有页面。

现在我开始创建我的模型,例如rails g model user。我明白了!

Expected string default value for `--jbuilder`; got true (boolean)
      invoke  active_record

The name 'User' is either already used in your application or reserved by Ruby on 
Rails. Please choose an alternative and run this generator again.

好的,这很公平,我理解错误信息。所以我想我会尝试创建一个不同的模型。当我运行rails g model testing时,我得到......

Running via Spring preloader in process 31815
Expected string default value for '--jbuilder'; got true (boolean)
      invoke  active_record
      create    db/migrate/20161217171019_create_testings.rb
      create    app/models/testing.rb
      invoke    test_unit
      create      test/models/testing_test.rb
      create      test/fixtures/testings.yml

有没有其他人有这个问题,如果有的话,为什么会这样?我试过运行bundle installbundle update没有运气。我也尝试过设置this post

中提到的Thor版本

我正在使用Rails 5.0.0.1和Ruby 2.3.1。我注意到这只是刚开始发生,因为我对macOS进行了更新到10.12.1我不确定它们是否相关。

更新

所以我开始测试这个。我创建了几个不同的项目'rails new testapppg'和'rails new testapp-pg'。

在两个应用程序中,我更改了thor gem gem 'thor', '0.19.1'。然后我继续运行bundle update,并创建数据库。现在,这两个项目都在运行rails g model sample

时创建了测试模型

酷!这就是修复。所以我回去重新创建了我的pxl-insight应用程序,更新了thor gem,创建了数据库。现在,当我去创建模型时,我又得到了错误!?

所以我的下一个问题是Rails缓存项目名称吗?这就是新项目工作正常的原因,但是之前使用的名称会导致错误?

2 个答案:

答案 0 :(得分:7)

昨天我收到了这个错误。我还通过降级Thor宝石来修复。 gem 'thor', '0.19.1'当我想再次使用相同的名称或模型在命令行中生成我的应用程序时,它会挂起很长一段时间并且什么也没发生。我尝试关闭并重新打开终端(其他人声称这对他们有效,所以它可能是另一种解决方案)但它并不适合我。

我通过删除项目中的/bin目录来修复它并运行:bundle install --binstubs,它将再次重新生成bin目录。可能是前一个项目的一些路径,位于bin目录中。

我希望它有所帮助

答案 1 :(得分:4)

尝试将Thor明确设置为您想要的版本。

在我的Gemfile中,我将版本设置为0.19.1并且我还拒绝我知道不好的版本,以防队友编辑文件,或者如果队友运行捆绑更新则保护应用程序。

示例:

for