問題タブ [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.
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 にあるのかどうかわかりません。
何か案は?
ruby-on-rails-4 - Rails ネストされたモデルの最適化されたクエリ
編集:私はMongoidを使用しているので、連鎖もhas_many through:
プロジェクト管理用のバックエンドを開発しており、「深く」関連するモデルがあります
これで、ユーザー用のサイドバーをコーディングしました。このサイドバーに、ユーザーが請負業者のプロファイルを持っている場合、アクティブなプロジェクトの数を表示したい
この情報へのアクセスを実装する最良の方法は何ですか?
一度に最大 30 件のアクティブなプロジェクト、プロジェクトごとに 1 ~ 6 件の割り当て (ただし、同じ請負業者との多くのステップ) について話しているため、請負業者は通常、合計でいくつかのプロジェクト (アクティブであるかどうかに関係なく) を持っています。
私のアイデア:
- 割り当てを見てください
current_contractor
- >ステップ - >プロジェクト - >アクティブなものを数えます - 進行中のプロジェクトを見る -> 割り当て -> 一致する請負業者を探す
current_contractor
- 請負業者 - >割り当て - >プロジェクト&カウントにジャンプできるように、すべての割り当てに
belong_to :project
(どうすればそれが同じであることを確認できますか?)を追加するかもしれませんself.step.project
ruby-on-rails - 複数のテーブルから関連付けを設定するためのヘルプが必要 Rails4 mongoId
教師が自分の可用性を設定している間、ここで関連付けを設定することに問題があります。教師は、自分が登録しているコースに対してのみ空き状況を設定できます。CourseType テーブルから事前定義されたコースのリスト。
教師登録時に、ユーザーは教師が教えることができるコースを選択する必要があります。
そのため、空き状況を設定している教師の場合、それらのコースのみが表示されます。
ruby-on-rails-4 - 重複モデルのRailsチェック
Rails アプリでミスを犯し、ログインの一意性を強制しませんでした。ここで、コード内の重複を (手動で) 見つけて削除することで、この混乱を解消したいと思います。
これらの重複を見つけることができる、Rails コンソールに入力できる便利なコマンドはありますか? 例えば。同じログインを持つ 2 人のユーザーを見つけ、おそらく重複の配列の配列を作成しますか?
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
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
です。
前もって感謝します!!
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
注:私も試しました:
そして、私のモデルに次のメソッドを追加しました:
それから
しかし、何も機能していないようです。私は何が欠けていますか?