2

MongoDB(mongoid)とMySQLを併用してRails 4でアプリケーションを作ろうとしています。しかし、私はそれを設定することができません。

私は以下の手順に従っています:

  1. rails new myapp -d mysql
  2. 次に、これらの行を Gemfile に追加しました。
    gem "mongoid"
    gem "bson_ext"
  3. bundle install
  4. rails g mongoid:config

ステップ 4 は失敗します。私は問題を理解することができません。次のエラーが表示されます。

/home/devesh/.rvm/gems/ruby-2.2.2/gems/mongoid-1.0.6/lib/mongoid/associations.rb:5:in require': /home/devesh/.rvm/gems/ruby-2.2.2/gems/mongoid-1.0.6/lib/mongoid/associations/has_many.rb:79: syntax error, unexpected keyword_do_cond, expecting ':' @documents = attributes ? attributes.collect do |attrs| ^ /home/devesh/.rvm/gems/ruby-2.2.2/gems/mongoid-1.0.6/lib/mongoid/associations/has_many.rb:84: syntax error, unexpected ':', expecting keyword_end end : [] ^ /home/devesh/.rvm/gems/ruby-2.2.2/gems/mongoid-1.0.6/lib/mongoid/associations/has_many.rb:99: syntax error, unexpected keyword_do_cond, expecting keyword_end attributes.values.each do |attrs| ^ /home/devesh/.rvm/gems/ruby-2.2.2/gems/mongoid-1.0.6/lib/mongoid/associations/has_many.rb:139: syntax error, unexpected keyword_end, expecting end-of-input (SyntaxError) from /home/devesh/.rvm/gems/ruby-2.2.2/gems/mongoid-1.0.6/lib/mongoid/associations.rb:5:in' from /home/devesh/.rvm/gems/ruby-2.2 .2/gems/mongoid-1.0.6/lib/mongoid.rb:40:in require' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/mongoid-1.0.6/lib/mongoid.rb:40:in' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/bundler-1.10.6/lib/bundler/ /home/devesh/.rvm/gems/ruby-2.2.2/gems/bundler-1.10.6/lib/bundler/runtime.rb:72 からの runtime.rb:76:require 内のrequire' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/bundler-1.10.6/lib/bundler/runtime.rb:76:inブロック (2 レベル): each' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/bundler-1.10.6/lib/bundler/runtime.rb:72:in/home/devesh/.rvm/gems/ruby-2.2.2/gems/bundler-1.10.6/lib/bundler/runtime.rb:61:in require' のブロック内/ each' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/bundler-1.10.6/lib/bundler/runtime.rb:61:inhome/devesh/ から。 rvm/gems/ruby-2.2.2/gems/bundler-1.10.6/lib/bundler.rb:134:in require' from /home/devesh/fashion_hub/store/config/application.rb:7:in' /home/devesh/.rvm/gems/ruby-2.2.2/gems/spring-1.3 から.6/lib/spring/application.rb:82:inrequire' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/spring-1.3.6/lib/spring/application.rb:82:inpreload' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/spring-1.3.6/lib/spring/application.rb:143:in serve' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/spring-1.3.6/lib/spring/application.rb:131:inblock in run' from /home/devesh/.rvm /gems/ruby-2.2.2/gems/spring-1.3.6/lib/spring/application.rb:125:in loop' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/spring-1.3.6/lib/spring/application.rb:125:inrun' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/spring -1.3.6/lib/spring/application/boot.rb:18:in <top (required)>' from /home/devesh/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:inrequire' from /home/devesh/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext /kernel_require.rb:54:in `require'

私はこのURLをたどっていました。

いくつかの詳細:

  1. OS-ubuntu 14.04
  2. ルビー v2.2.2
  3. レール4.2.3
4

1 に答える 1

7

application.rb次の行をファイルに追加します。
config.generators do |g| g.orm :active_record end

これにより、レール g はアクティブ レコードを使用するようになります。

また、mongodb のモデルを生成する場合は常に、次を使用します。
rails g mongoid:model yourmodelname

于 2015-08-16T07:00:10.507 に答える