問題タブ [mongoid4]

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.

0 投票する
1 に答える
60 参照

ruby-on-rails - 複数のサブジェクトからすべての投稿を取得する

ユーザーのすべての件名にのみ関連するすべての投稿を表示したい。私は試してみましたが、常にエラーが発生します。それは私にとって多くの関係があるので、あまりにも混乱しています。ここにモデルがあります。

0 投票する
1 に答える
304 参照

ruby-on-rails - Mongoid has_and_belongs_to_many に「_ids」接尾辞がありませんか?

次の例では:

オブジェクトは次のように格納されます。

フィールドの名前tag_idstagsおよびband_idsに変更することは可能bandsですか? ありがとう

0 投票する
0 に答える
1263 参照

ruby-on-rails - Mongoidバッチコレクション挿入:新しく作成されたアイテムのIDを取得する方法は?

hereで説明されているように、新しいドキュメントの配列を MongoDB コレクションにバッチ挿入するのはかなり簡単です。

ただし、新しく作成された ID のリストを取得する方法は簡単ではありません。次のようなコーディングは可能ですか?

前もって感謝します!

0 投票する
1 に答える
159 参照

mongoid4 - ActiveJob はパラメータとして BSON::ObjectId を渡します

アクティブなジョブでは、ObjectId をパラメーターとして渡すことができません。文字列との間で変換せずにそれを行う方法はありますか?

0 投票する
1 に答える
1466 参照

ruby-on-rails-4 - スコープが Mongoid で機能しない (未定義のメソッド `to_criteria')

ReleaseSchedule.next_release他のコントローラーで呼び出す

次のエラーが発生しました

release_schedule.rb

0 投票する
1 に答える
296 参照

ruby-on-rails - 初期化されていない定数 Mongoid::Slug - mongoid-slug を動作させることができません

ビューを読み込もうとすると、初期化されていない定数 Mongoid::Slug を受け取ります。

問題のあるモデルは次のとおりです。

Gemfile は次のように mongoid と mongoid-slug を取り込みます。

gem リストには、インストールされている各バージョンが次のように表示されます。

ここで何が起こっているかについて何か提案はありますか?

0 投票する
1 に答える
527 参照

ruby-on-rails - Mongoid 1-N 挿入重複キー エラー

Mongoid 4.0.0 と Rails 4 から奇妙な動作が発生しています。1 対 N の関係があり、関係の N 側を保存しようとすると、重複キー エラー インデックスが発生します。いくつかのコードをお見せしましょう:

そして、失敗するテストは次のとおりです。

このテストを実行すると、次の結果が得られます。

コレクションの作成後にコマンドを追加してputs、実際にその ID が複製されているものと同じであることを確認しました。さらに、ステートメントを削除するpur.collection_id = col.idと、次のエラーが発生します。NoMethodError: undefined method 'insert' for nil:NilClassこれにより、Purchase オブジェクトを保存しようとすると、Mongoid は 1-N 関係の反対側を自動的に挿入しようとしますが、それは既に永続化されています。

pur.collection_id = col.idに変更しても何も変わらないことに注意してくださいpur.collection = col

に変更することCollection.createでこれを解決できますCollection.newが、これは実行可能な解決策ではありません。ご想像のとおり、既存のコレクションの購入を作成できるようにする必要があります。

なぜこうなった?私はドキュメントを調べましたが、この動作については言及されていません。これは私の意見では意味がありません (または、この画面を長時間見すぎている可能性があります)。

これを解決する方法はありますか?

0 投票する
1 に答える
151 参照

ruby-on-rails - id => _id の Mongoid 4.0.0 モデル フィールド強制の防止

Rails 4 で Mongoid 4.0.0 を使用しています。私のモデルは別のアプリケーションでテーブルをマップしていますが、フィールド名を制御できません。

モデルの 1 つに という名前のフィールドがあり、idMongo のフィールドに強制されてい_idます。たとえば、次のid値を"something"持つドキュメントを挿入すると、

それ以外の

この強制を回避し、Mongoid が 2 つのフィールドを混同しないようにし、私のidフィールドをそのままにしておく方法はありますか?

私が言ったように、idフィールドの名前を変更することはオプションではありません。

ありがとう!

[編集済み] これは明らかに MongoDB の問題ではありません。それはモペットまたは(私の推測では)モンゴイドでなければなりません。

paramsキーを から:idに変更しようとしました:_ridが、これはまだ発生しています。エイリアスをチェックアウトするつもりですが、最初のパスから、それらが役立つとは思いません。それらは間違った方向に進んでいるようです。

0 投票する
0 に答える
312 参照

nested-attributes - Mongoid、親子同時更新

私は次のモデル構造を持っています: aBanner embeds_many Slidesと eachSlide embeds_many contents

いくつかのコンテンツを含む 1 つのスライドを含むバナーから始めています。ここで、JSON 要求をサーバーに送信して、新しいコンテンツを既存のスライドに追加し、そのコンテンツで新しいスライドを作成します。何かのようなもの

今呼び出すとbanner.update banner_params、非常に奇妙なエラーが発生します。

これは自明のエラーですが、

エラー 16837 で失敗しました: 「'banner.slides.0.contents' と 'banner.slides' を同時に更新することはできません」

しかし、新しいスライドを作成し、既存のスライドに新しいコンテンツを一度に追加することは許可されていると確信しています。