問題タブ [mongoid3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - アップサート/モンゴイド/モペットでプッシュする方法
Mongoid(v3)を使用してMongoDBにアクセスしており、次のアクションを実行したいと思います。
これはmongoシェルで正常に機能します。これは、私が頻繁に呼び出すことになるので、私にとって重要な単一の不可分操作であるため、まさに私が望んでいることでもあります。フェッチと更新の2つの操作を実行する必要はありません。私はmongoidを介してたくさんのことを試しましたが、それを機能させることができません。
どうすればMongoIDを邪魔にならないようにして、このコマンドをMongoDBに送信できますか?Mopedレベルでこれを行う方法があると思いますが、そのライブラリのドキュメントは基本的に存在しません。
mongoid - Mongoid 3 gem の依存関係
Mongoid gem を 3.0 にアップグレードして、新しい機能を取得するために activeadmin-mongoid をアップグレードしたいと考えています。
ただし、私の mongoid-mapreduce gem は 2.0 に依存しています。これを回避する方法はありますか?mongoid-mapreduce が mongoid 3.0 でも動作するかどうかを確認する方法はありますか?
ruby-on-rails - has_many関係を持つmongoid
私は3つのモデルを持っています
City.rb
Place.rb
そして、確認したい属性状態のレビュー。
Review.rb
City.find( "somecity")。placesを呼び出せるようにしたいと思います
また、すべての場所を表示する代わりに、デフォルトのスコープを置き換えて、「公開済み」の状態のレビューがある場所のみを検索します
activerecordでは...
mongoidでこれを行う方法はありますか、または私の2番目のオプションは、レビューが公開されるたびにアクティブに設定される場所に新しい属性を組み込むことです。
ruby-on-rails - mongoid は has_many リレーションをembeds_many に変換します
私はしばらく前に初心者とmongodbの初期の間違いを犯し、それらを埋め込むべきときに多くのhas_many関係を作成しました。
私の質問は、レコードを多態的な has_many シナリオからembeds_many に変換するにはどうすればよいですか?
へ =>
私は通常、すべてのレコードを反復してそのように実行しますが、名前付けが問題になると思います。したがって、一時的なモデルを作成するという短い方法をどのように達成できるかわかりませんが、他の何人かが同じ間違いを犯し、おそらく穏やかな解決策を持っていることを願っていますか?
ruby-on-rails - ActiveAdmin および Mongoid 3.x でカスタム フィールド (配列) を保存できない
配列[lng、lat]であるフィールド「場所」があります。
次のように定義された ActiveAdmin フォームに 2 つの入力フィールドがあります。
緯度と経度を取得するために、モデルに 2 つのゲッターを定義しました。
フォームは期待どおりに表示されます。
これらの値を保存するために、モデルに 2 つのセッターを作成しました
フォームの送信後、これらのメソッドが呼び出されますが、値は保持されません。
私は何かが恋しいですか?
ruby-on-rails-3 - Mongoid、Heroku、Device、MongoHQ、Rails での MongoDB エラー
現在herokuにデプロイされている単純なアプリに取り組んでいます.mongoid、deviceを使用しており、localhostでユーザーログインを非常に簡単に作成できますが、herokuでは本番環境では作成できません. アカウントを作成しようとすると、送信後にエラーが発生します。
本番用の mongoid.yml を変更する必要があると思いますが、方法がわかりません。
私heroku config
は次のものを持っています:
mongoid.yml には、heroku で提案されているように次のものがあります。
私のgemfileには次のものがあります:
git push heroku master
それは私に次のヒントを与えた後:
heroku - 指定された Ruby 1.9.3 を使用していない Heroku
Mongoid 3 と Ruby 1.9.3 へのアップグレード。Heroku Cedar スタックで Ruby 1.9.3 を使用しようとしています。Gemfile の先頭に以下を追加しました。
HerokuにPushしてみると、うまくいっているようでした
-----> Heroku 受信プッシュ
-----> Ruby/Rails アプリが検出されました
-----> Ruby バージョンを使用: ruby-1.9.3
-----> Bundler バージョン 1.2.0 を使用して依存関係をインストールします。 rc.2
ただし、Ruby 1.9.3 が必要なため、私のアプリは壊れています。エラーは次のようになります。
TypeError: can't convert Array to String
from /app/vendor/bundle/ruby/1.9.1/gems/moped-1.2.0/lib/moped/node.rb:214:in initialize'getaddrinfo'
from /app/vendor/bundle/ruby/1.9.1/gems/moped-1.2.0/lib/moped/node.rb:214:in
ここで提案されているように、私のパスには最初にビンがあります
パス => bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin
何が間違っている可能性がありますか?
アップデート:
Mongoid.yml
Heroku プッシュ出力:
サーバーのログ:
/app/vendor/bundle/ruby/1.9.1/gems/moped-1.2.0/lib/moped/node.rb:214:in
getaddrinfo' /app/vendor/bundle/ruby/1.9.1/gems/moped-1.2.0/lib/moped/node.rb:214:in
initialize' /app/vendor/bundle/ruby/1.9.1/gems/moped -1.2.0/lib/moped/cluster.rb:53:new' /app/vendor/bundle/ruby/1.9.1/gems/moped-1.2.0/lib/moped/cluster.rb:53:in
ブロック内の初期化' /app/vendor/bundle/ruby/1.9.1/gems/moped-1.2.0/lib/moped/cluster.rb:53 :map' /app/vendor/bundle/ruby/1.9.1/gems/moped-1.2.0/lib/moped/cluster.rb:53:in
初期化中' /app/vendor/bundle/ruby/1.9.1/gems/moped-1.2.0/lib/moped/session.rb:183 :new' /app/vendor/bundle/ruby/1.9.1/gems/moped-1.2.0/lib/moped/session.rb:183:in
初期化中' /app/vendor/bundle/ruby/1.9.1 /gems/mongoid-3.0.4/lib/mongoid/sessions/factory.rb:64:innew' /app/vendor/bundle/ruby/1.9.1/gems/mongoid-3.0.4/lib/mongoid/sessions/factory.rb:64:in
create_session' /app/vendor/bundle/ruby/1.9.1/gems/mongoid-3.0.4/lib/mongoid/sessions /factory.rb:43:default' /app/vendor/bundle/ruby/1.9.1/gems/mongoid-3.0.4/lib/mongoid/sessions.rb:109:in
デフォルトで' /app/vendor/bundle/ruby/1.9.1/gems/mongoid-3.0.4/lib/mongoid/sessions.rb:378:mongo_session__session__' /app/vendor/bundle/ruby/1.9.1/gems/mongoid-3.0.4/lib/mongoid/sessions.rb:213:in
で' /app/vendor/bundle /ruby/1.9.1/gems/mongoid-3.0.4/lib/mongoid/sessions.rb: 157:インチcollection' /app/vendor/bundle/ruby/1.9.1/gems/mongoid-3.0.4/lib/mongoid/contextual/mongo.rb:217:in
initialize' /app/vendor/bundle/ruby/1.9.1/gems/mongoid-3.0.4/lib/mongoid/contextual.rb:47:innew' /app/vendor/bundle/ruby/1.9.1/gems/mongoid-3.0.4/lib/mongoid/contextual.rb:47:in
create_context' /app/vendor/bundle/ruby/1.9.1/gems /mongoid-3.0.4/lib/mongoid/contextual.rb:30:context' /app/vendor/bundle/ruby/1.9.1/gems/mongoid-3.0.4/lib/mongoid/contextual.rb:18:in
個別に' /app/app/controllers/my_controller.rb:14:send_actionindex' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_controller/metal/implicit_render.rb:4:in
' /app/vendor/bundle/ruby/1.9.1/gems /actionpack-3.2.3/lib/abstract_controller/base.rb:167:inprocess_action' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_controller/metal/rendering.rb:10:in
process_action' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/abstract_controller/callbacks.rb:18 :block in process_action' /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/callbacks.rb:436:in
実行中 _647889395514353966__process_action_ 2178726499830545563 _callbacks' /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/callbacks.rb:405:in__run_callback' /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/callbacks.rb:385:in
_run_process_action_callbacks' /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/callbacks.rb:81:inrun_callbacks' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/abstract_controller/callbacks.rb:17:in
process_action' /app/vendor/bundle/ruby/1.9.1/gems /actionpack-3.2.3/lib/action_controller/metal/rescue.rb:29:inprocess_action' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_controller/metal/instrumentation.rb:30:in
block in process_action' /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/notifications .rb:123:block in instrument' /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/notifications/instrumenter.rb:20:in
instrument' /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/notifications.rb:123:ininstrument' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_controller/metal/instrumentation.rb:29:in
process_action' /app/vendor/bundle/ruby /1.9.1/gems/actionpack-3.2.3/lib/action_controller/metal/params_wrapper.rb:205:inprocess_action' /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.3/lib/active_record/railties/controller_runtime.rb:18:in
process_action' /app/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.4.1/lib /new_relic/agent/instrumentation/rails3/action_controller.rb:34:inblock in process_action' /app/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.4.1/lib/new_relic/agent/instrumentation/controller_instrumentation.rb:262:in
perform_action_with_newrelic_trace 内のブロック' /app/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.4.1/lib/new_relic/agent/method_tracer.rb:242:perform_action_with_newrelic_tracetrace_execution_scoped' /app/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.4.1/lib/new_relic/agent/instrumentation/controller_instrumentation.rb:257:in
' /app/vendor/bundle/ruby/1.9 内.1/gems/newrelic_rpm-3.4.1/lib/new_relic/agent/instrumentation/rails3/action_controller.rb:33:process_action' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/abstract_controller/base.rb:121:in
処理中' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3 /lib/abstract_controller/rendering.rb:45:inprocess' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_controller/metal.rb:203:in
dispatch' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_controller/metal/rack_delegation.rb:14:indispatch' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_controller/metal.rb:246:in
block inアクション' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_dispatch/routing/route_set.rb:73:call' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_dispatch/routing/route_set.rb:73:in
ディスパッチ中' /app/vendor/bundle/ruby/1.9.1 /gems/actionpack-3.2.3/lib/action_dispatch/routing/route_set.rb:36:incall' /app/vendor/bundle/ruby/1.9.1/gems/journey-1.0.4/lib/journey/router.rb:68:in
呼び出し中のブロック' /app/vendor/bundle/ruby/1.9.1/gems/journey-1.0.4/lib/journey/router.rb:56:each' /app/vendor/bundle/ruby/1.9.1/gems/journey-1.0.4/lib/journey/router.rb:56:in
呼び出し中' /app/vendor/bundle/ruby/1.9.1 /gems/actionpack-3.2.3/lib/action_dispatch/routing/route_set.rb:600:call' /app/vendor/bundle/ruby/1.9.1/gems/omniauth-1.0.3/lib/omniauth/strategy.rb:168:in
呼び出し中!' /app/vendor/bundle/ruby/1.9.1/gems/omniauth-1.0.3/lib/omniauth/strategy.rb:148:incall' /app/vendor/bundle/ruby/1.9.1/gems/omniauth-1.0.3/lib/omniauth/builder.rb:42:in
call' /app/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm -3.4.1/lib/new_relic/rack/browser_monitoring.rb:12:incall' /app/vendor/bundle/ruby/1.9.1/gems/exceptional-2.0.32/lib/exceptional/integration/rack_rails.rb:13:in
call' /app/vendor/bundle/ruby/1.9.1/gems/mongoid-3.0.4/lib/rack/mongoid/middleware/identity_map .rb:33:inblock in call' /app/vendor/bundle/ruby/1.9.1/gems/mongoid-3.0.4/lib/mongoid/unit_of_work.rb:39:in
unit_of_work' /app/vendor/bundle/ruby/1.9.1/gems/mongoid-3.0.4/lib/rack/mongoid/middleware/identity_map.rb:33:incall' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_dispatch/middleware/best_standards_support.rb:17:in
call' /app/vendor /bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/etag.rb:23:incall' /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/conditionalget.rb:25:in
call' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_dispatch/middleware/head.rb:14:incall' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_dispatch/middleware/params_parser.rb:21:in
call' /app/vendor/bundle/ruby/1.9.1 /gems/actionpack-3.2.3/lib/action_dispatch/middleware/flash.rb:242:incall' /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/session/abstract/id.rb:205:in
context' /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/session /abstract/id.rb:200:call' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_dispatch/middleware/cookies.rb:338:in
呼び出し中' /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.3/lib/active_record/query_cache.rb:64:call' /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:467:in
呼び出し中' /app/vendor /bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_dispatch/middleware/callbacks.rb:28:inblock in call' /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/callbacks.rb:405:in
run _2458689492548881573_ call _1062142932397414625__callbacks' /app/vendor/bundle/ruby/1.9.1/gems/ activesupport-3.2.3/lib/active_support/callbacks.rb:405:in__run_callback' /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/callbacks.rb:385:in
_run_call_callbacks' /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/callbacks.rb:81:inrun_callbacks' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_dispatch/middleware/callbacks.rb:27:in
call' /app/vendor/bundle/ruby/1.9.1/gems /rack-1.4.1/lib/rack/sendfile.rb:102:incall' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_dispatch/middleware/remote_ip.rb:31:in
call' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_dispatch/middleware/debug_exceptions.rb :16:call' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_dispatch/middleware/show_exceptions.rb:56:in
呼び出し中' /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/rack/logger.rb:26 :call_app' /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/rack/logger.rb:16:in
呼び出し中' /app/vendor/bundle/ruby /1.9.1/gems/actionpack-3.2.3/lib/action_dispatch/middleware/request_id.rb:22:incall' /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/methodoverride.rb:21:in
call' /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib /rack/runtime.rb:17:call' /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/cache/strategy/local_cache.rb:72:in
呼び出し中' /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/lock.rb:15:incall' /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_dispatch/middleware/static.rb:62:in
call' /app/vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:136:inforward' /app/vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:245:in
fetch' /app/vendor/bundle/ruby/1.9.1 /gems/rack-cache-1.2/lib/rack/cache/context.rb:185:lookup' /app/vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:66:in
呼び出し中!' /app/vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:51:incall' /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/engine.rb:479:in
call' /app/vendor/bundle/ruby/1.9.1/gems /railties-3.2.3/lib/rails/application.rb:220:incall' /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/railtie/configurable.rb:30:in
method_missing' /app/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.4.1/lib/new_relic/rack/developer_mode.rb :24:incall' /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/content_length.rb:14:in
call' /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/rack/log_tailer.rb:14:incall' /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/connection.rb:80:in
block in pre_process' /app/vendor/bundle /ruby/1.9.1/gems/thin-1.4.1/lib/thin/connection.rb:78:incatch' /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/connection.rb:78:in
pre_process' /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/connection.rb:53:inprocess' /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/connection.rb:38:in
receive_data' /app/vendor/bundle/ruby/1.9.1/gems /eventmachine-0.12.10/lib/eventmachine.rb:256:run_machine' /app/vendor/bundle/ruby/1.9.1/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in
実行中' /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/backends/base.rb:63 :start' /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/server.rb:159:in
起動中' /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/handler/thin.rb:13 :run' /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:265:in
起動中' /app/vendor/bundle/ruby/1.9 .1/gems/railties-3.2.3/lib/rails/commands/server.rb:70:instart' /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/commands.rb:55:in
block in ' /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/ rails/commands.rb:50:intap' /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/commands.rb:50:in
' script/rails:6:inrequire' script/rails:6:in
'
mongoid - Mongoidでmongoコレクションの名前を変更するにはどうすればよいですか?
Artistsというコレクションがあります。名前をartist_lookupsに変更したいと思います。どうすればよいですか?
ruby-on-rails - 宝石からMongoid::Documentに機能を追加する方法は?
モデルにいくつかの機能を追加するgemを作成したいと思います。Mongoidモデルのカスタムキーワードを定義するにはどうすればよいですか?例えば: