問題タブ [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 に答える
623 参照

ruby-on-rails - 「db.usersのクエリは許可されていません」を解決する方法

Rails 4 と Mongoid 4 を使用して新しい Rails アプリを作成しました。"not authorized for query on mydb.users"テストを実行すると、次のエラーが表示されます。

最初はこれは Mongoid と MongoDB の認可の問題だと思っていましたが、mongoldb/db/collection にコンソールで認証しなくても問題なくアクセスできます。

私は Rspec テストが初めてなので、問題が私のテスト、mongoid または mongodb にあるのかどうかわかりません。

何か案は?

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

ruby-on-rails-4 - Rails ネストされたモデルの最適化されたクエリ

編集:私はMongoidを使用しているので、連鎖もhas_many through:

プロジェクト管理用のバックエンドを開発しており、「深く」関連するモデルがあります

これで、ユーザー用のサイドバーをコーディングしました。このサイドバーに、ユーザーが請負業者のプロファイルを持っている場合、アクティブなプロジェクトの数を表示したい

この情報へのアクセスを実装する最良の方法は何ですか?

一度に最大 30 件のアクティブなプロジェクト、プロジェクトごとに 1 ~ 6 件の割り当て (ただし、同じ請負業者との多くのステップ) について話しているため、請負業者は通常、合計でいくつかのプロジェクト (アクティブであるかどうかに関係なく) を持っています。

私のアイデア:

  • 割り当てを見てくださいcurrent_contractor- >ステップ - >プロジェクト - >アクティブなものを数えます
  • 進行中のプロジェクトを見る -> 割り当て -> 一致する請負業者を探すcurrent_contractor
  • 請負業者 - >割り当て - >プロジェクト&カウントにジャンプできるように、すべての割り当てにbelong_to :project(どうすればそれが同じであることを確認できますか?)を追加するかもしれませんself.step.project
0 投票する
1 に答える
48 参照

ruby-on-rails - 複数のテーブルから関連付けを設定するためのヘルプが必要 Rails4 mongoId

教師が自分の可用性を設定している間、ここで関連付けを設定することに問題があります。教師は、自分が登録しているコースに対してのみ空き状況を設定できます。CourseType テーブルから事前定義されたコースのリスト。

教師登録時に、ユーザーは教師が教えることができるコースを選択する必要があります。

そのため、空き状況を設定している教師の場合、それらのコースのみが表示されます。

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

ruby-on-rails-4 - 重複モデルのRailsチェック

Rails アプリでミスを犯し、ログインの一意性を強制しませんでした。ここで、コード内の重複を (手動で) 見つけて削除することで、この混乱を解消したいと思います。

これらの重複を見つけることができる、Rails コンソールに入力できる便利なコマンドはありますか? 例えば。同じログインを持つ 2 人のユーザーを見つけ、おそらく重複の配列の配列を作成しますか?

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

ruby-on-rails - モンゴイドスコープは間違った会話を見つけます

私のモデルには次のスコープがあります。

これは、2 人の人物間の会話を見つけようとします。私のコントローラーでは、次のアクションがあります。

そして、ここに私の問題があります:

私にはさらに3人のユーザーがいます:

ユーザー、A、B、C、D...誰とも会話しません。ユーザー A とユーザー B の間の会話を作成します。会話が存在しないため、作成されます。ユーザー A がユーザー C との会話を開始したい場合、モデルは false を返します。会話が存在しないため、コントローラーが必要です。新しいものを作成しますが、その代わりに、コントローラーはユーザー A とユーザー B の間の会話を開きますが、ユーザー A とユーザー C の間の新しい会話を作成し、この会話を開く必要があります。

私が間違っていることは何ですか?? さまざまなブラウザーで試して、キャッシュを消去しました。


アップデート:

最初の会話を作成すると、常に最初の会話が表示されます。つまり:

最初の会話

  • ユーザー A - ユーザー B

次のユーザー間で他の会話を作成しようとしています:

  • ユーザー A - ユーザー C、会話を表示 ユーザー A、B
  • ユーザー C - ユーザー B、会話を表示 ユーザー A、B
  • ユーザー C - ユーザー D、会話を表示 ユーザー A、B
0 投票する
1 に答える
282 参照

ruby-on-rails-4 - Rails 4.2 で secrets.yml を使用して秘密鍵を mongoid.yml に渡すにはどうすればよいですか?

Mongoid を使用するのはこれが初めてで、テスト/ローカル サーバーではすべて正常に動作しますが、IBM Bluemix へのデプロイに関しては壁にぶつかっています (Bluemix の理由は聞かないでください。フィガロを使ったHeroku)

uri を使用して MongoLab に接続しています。

私のscerets.ymlで:

私のmongoid.ymlで

アプリをデプロイすると、URI が nil であるため、ステージングが失敗します。 uriをハードコーディングしてテストしたので、これは知っていましたが、うまくいきました。

現在、.gitignore に mongoid.yml を含めていないので、uri: <%= Rails.application.secrets.mongo_url %> を挿入できれば安全です。

また、uri を mongoid.yml にハードコーディングして gitignore に含めようとしましたが、他のバグがいくつか発生し、どちらがより良いアプローチなのか疑問に思います。

これが私が得るエラーメッセージです:

繰り返しますが、これは、私が設定した urisecrets.ymlが で nil を示しているためmongoid.ymlです。

前もって感謝します!!

0 投票する
2 に答える
1336 参照

ruby-on-rails - enum フィールド型のモデルの仕様テストに合格する方法 - Mongoid

編集: @max の提案に従って、代わりに列挙型を使用するようにモデルを変更していますが、デフォルトの状態でテストすることはできません:

モデル内の次のコードで正常に動作します。

しかし、この部分はまだ失敗します:

私は Mongoid を使用していることに注意してください。私はモデル仕様にこれを持っています:

古い質問 - 参照用に保管していますか?

そして、私のモデルではこれがあります:

まだ機能していません。Mongoid ビットを削除しようとしましたが、同じエラーが発生します。

Failure/Error: it { is_expected.to have_field(:published).of_type(Boolean).with_default_value_of(false) } Expected Post to have field named "published" of type Boolean with default value of false, got field "published" of type Mongoid::Boolean

注:私も試しました:

そして、私のモデルに次のメソッドを追加しました:

それから

しかし、何も機能していないようです。私は何が欠けていますか?