問題タブ [mongoid]
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-3 - Rails 3 RC、Mongoid、Recaptcha、RSpec で保護された「拒否」メソッドを起動する
私はレール(特にレール3)に少し慣れていないので、ご容赦ください。これにはちょっと困惑しています。基本的に、RSpec を使用して自分のアプリケーションで CustomersController をテストしたいと考えています。コントローラーで作成アクションへのポストを実行しようとしてスペックを実行すると、次のエラーが発生します。理由はわかりません。
申し訳ありませんが、従うべきコードがたくさんあります。まずは私の宝石です。
これで、CustomersController
次のように定義されました。
これが私の顧客モデルです:
最後に、ここに私の仕様があります:
ruby-on-rails - どのようにmongodbを称賛するか'が含まれていますか?' ファインダー状態
私はMongoidを使用しており、プロジェクトとユーザーモデルがあります。プロジェクトモデルには、フィールドがあります
1つのプロジェクトに属するすべてのユーザーを見つけることができます。つまり、「このプロジェクトのユーザーを見つける」
しかし、1人のユーザーに属するすべてのプロジェクトを見つけるのに少し問題があります。つまり、「このユーザーのプロジェクトを見つける」
Userモデルにproject_idsを格納するための別のフィールドを含めることができることは知っていますが、喜んでそうしますが、興味があるのは、#includesと同様に機能するファインダー条件で使用する方法がありますか?ルビーで?
mongodb - mongodbmapreduceが一貫性のない結果を返す
私は非常に単純なマップリデューステストを持っています...それは一貫して機能していません。一言で言えば、私は重複したレコードを探しています。私は次のようなコレクションを持っています:
GiftIdea-site_id-site_key
site_id + site_keyは一意である必要がありますが、現在は一意ではありません。だから私は次のマップリデュースコードを持っています:
この入力データを使用して:
GiftIdea
-site_id:amazon -site_key:2 -site_id:amazon -site_key:2
-site_id:amazon -site_key:1
だから私は得る必要があります:
amazon1 => 2 amazon2 => 1
これを実行するとどうなりますか
わかりました。すばらしいニュースです。3行を出力し、2行を出力しました。
amazon1 => 1.00000 amazon2 => 1.00000
私のログファイルには、次のものがあります。
8月28日土曜日13:22:50[conn582]CMD:personalizr_test.tmp.mr.mapreduce_1283016170_139をドロップ8月28日土曜日13:22:50 [conn582] CMD:personalizr_test.tmp.mr.mapreduce_1283016170_139_incをドロップ
キー:amazon1値:2 Sat Aug 28 13:22:50 [conn582] personalizr_test.tmp.mr.mapreduce_1283016170_139_inc Sat Aug 28 13:22:50 [conn582] Buildindexpersonalizr_test.tmpの{0:1}に新しいインデックスを作成します。 mr.mapreduce_1283016170_139_inc idxNo:0 {ns: "personalizr_test.tmp.mr.mapreduce_1283016170_139_inc"、キー:{0:1}、名前:"0_1"}土8月28日13:22:50[conn582]2レコード0秒土8月28日13:22:50[conn582]personalizr_test.tmp.mr.mapreduce_1283016170_139の{_id:1}に新しいインデックスを作成8月28日土曜日13:22:50 [conn582] Buildindex personalizr_test.tmp.mr.mapreduce_1283016170_139 idxNo:0 {名前: " id"、ns:" personalizr_test.tmp.mr.mapreduce_1283016170_139 "、key:{_id:1}} Sat Aug 28 13:22:50 [conn582] done for 0 records 0secs Key:amazon1 Values:1 Key:amazon2 Values:1 8月28日土曜日13:22:50[conn582]CMD:personalizr_test.tmp.mr.mapreduce_1283016170_139_incを削除8月28日土曜日13:22:50 [conn582] CMD:personalizr_testを削除。 [conn582]接続終了127.0.0.1:56135
1、2、1は、マップ機能が正しく機能していることを示します。これは正しい順序の正しい項目ですが、reduce関数は奇妙に見えます。amazon1のreduceを2回呼び出していますが、2回目は値が正しくありません。もう1つは、最初の呼び出しの後、mongoがインデックスを作成しているように見えることです。最初のデータを待って、データ形式がどうなるかを把握し、インデックスを適切に生成できるようになると思います。しかし、なぜ電話がかかってきたのかわかりません:キー:amazon1値:1電話
助言がありますか?
その他の興味深い情報:mongo 1.6.1 mongoid 2.0.0.beta16 bson 1.0.4 bson_ext 1.0.4
本当に独特なことの1つは、ttが実際のデータを含む別のデータベースで動作することです。
入力されたデータベースのレコードの1つは次のようになります。
そして、これが私のサンプルの1つです
提案?
ruby-on-rails-3 - Rails 3、MongoId & bson のバージョンの問題
Rails 3 final にアップデートしました。現在、MongoId、Mongo の Ruby ドライバー、および bson に問題があります。Rails を実行しようとすると、「You have already activate bson 1.0.7, but your Gemfile requires bson 1.0.4. Consider using bundle exec. (Gem::LoadError)」というメッセージが表示されます。
MongoId には bson_ext 1.0.4 が必要なので、Gemfile に gem "bson_ext", "1.0.4" があります。bson 1.0.7 をアンインストールしようとしましたが、Mongo Ruby ドライバーには bson >= 1.0.5 が必要なため、Rails が起動しませんでした。
どうすればこれを解決できるのでしょうか?
ruby-on-rails - params配列からMongoidを取得する
MongoID / Rails 3を使用して埋め込みドキュメントを含むルートドキュメントを見つけるには、次のようにクエリを実行する必要があります。
BSON :: ObjectIDを使用せずにクエリを実行する方法はありますか?
ありがとう!
ruby - Mongoid/activesupport のバージョンの問題
(Rails やその他のフレームワークではなく) プレーンな Ruby スクリプトから Mongoid を使用しようとしていますが、バージョン依存関係の競合が発生していると思います。
私のローカル Rails は既に 3.0.0 にアップグレードされています。エラーを正しく読むと、activesupport は < 3.0.pre である必要があり、3.0.0 は新しすぎるという要件がどこかにありますか?
これは、Rails 3.0 が新しく、Mongoid のどこかに、アップグレードが必要な 3.0.pre が定義された構成オプションがあるためでしょうか? どこでそれをしますか?
以前は古い Rails もインストールしていましたが、別のエラーが発生しました。
以前のアクティブ サポートをインストールした状態に戻った場合、新しいアクティブ サポートも影響を受けないようにするにはどうすればよいですか?
私はまだRubyに慣れていないので、答えを詳しく教えてください。
Simon の提案に従って Mongoid 2.0 ベータ版にアップグレードした後、bson が新しすぎるという新しい競合が発生しています。
bson 1.0.4 が既にロードされているのはなぜですか? 他の何かが明示的にロードしようとしていますか? この時点で、単純な .rb スクリプトに必要なのは rubygems と mongoid だけです。
私が使用している関連性の高いすべての宝石は次のとおりです。
ruby-on-rails - Rails3.0ORMにとらわれない管理プラグイン
鉄道関係者の皆さん、ActiveScaffoldに相当するものを知っていますが、ORMにとらわれないか、少なくともMongoidについては知っていますか?
mongodb - Mongoid (Ruby on Rails の MongoDB マッパー) を使用して、Cat が Animal から継承する場合、型を設定する必要がありますか?
つまりapp/models/animal.rb
、
そして、app/models/cat.rb
次に、アニマルに何らかの「タイプ」を設定して、それが猫であることを覚えておく必要がありますか、それとも自動ですか?
ruby-on-rails - Mongoid (Ruby on Rails 用の MongoDB マッパー) を使用すると、s.save が true を返すのにレコードが更新されないのはなぜですか?
次のコードを 2 回実行すると、両方の回s.save
が true を返し、成功を示しますが、2 回目は時間が更新されませんか?
ruby-on-rails - ファイルの Carrierwave Mongoid 検証
Carrierwave がドキュメントを mongoid オブジェクトにアップロードしたことを検証する方法がわかりません。
私はドキュメントクラスを持っています
とアップローダ:
アップロードが存在すること、およびそれがホワイト リストと一致することを標準の検証エラーで検証したい
これはRails 2.3.8にあります