問題タブ [ruby-datamapper]

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 に答える
325 参照

ruby - Ruby/Sinatra では、Datamapper の .all は機能しますが、.get は機能しませんか?

Sinatra のパスからデータを取得し、それを使用して Datamapper を使用して特定のレコードを検索しようとしています。Datamapper docs はそれを示しているようです。

シンボル に関連付けられたすべてのレコードを検索する必要があります。test_path

これは動作しません。test_get は nil になります。

一方、機能するのは

私の2つの質問は次のとおりです。

  1. Datamapper の .get() 呼び出しで何が間違っていますか?
  2. .all(:name => value) メソッドは .get() より遅いですか、それともどちらを使用しても問題ありませんか?

これは、動作を示すために簡略化された Sinatra スクリプトです。

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

ruby - Sinatra の DataMapper エラー - NameError: child_model が見つかりません

Sinatra と DataMapper を使用します。2 つ以上のモデル クラスを使用するのはこれが初めてです。エラーの原因がわかりません。ありがとう。

エラー:

モデル:

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

ruby - シン(シナトラ)経由でアクセスすると、Datamapperはsqlitedbを消去します

sinatra+datamapperを使用して小さなWebアプリを構築しています。このアプリは、table1に多数のレコードが含まれ、table2には何も含まれていないsqliteデータベースに基づいています。

私のdir構造は次のとおりです。

データベースはにありますlib/wodb_el_v0.0.1.db。これらのファイルにはすべてクラスが含まれています。

次のような行を追加してクラスを呼び出し、rankmanager.rbまたはdatabase.rbでテストを実行すると、次のようになります。

私がそうするとき、すべてがうまくいきます。テストを実行するために行を削除すると(オブジェクトを作成してメソッドを実行する場合)require_relativeデータベースを使用する代わりにデータベースが消去されapplication.rbます。データベースは、によってロードされるによって処理されます。db_scheme.rbdatabase.rb

db_scheme.rb要点です。

datamapperがそのように動作する理由はありますか?

ps。データベースを作成するメソッドを手動で実行して、データベースにデータをロードdatabase.rbします。

よろしくお願いいたします。よろしくお願いいたします。

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

ruby - 関連付けが存在する場合と存在しない場合の DataMapper での 2 つのフィールドの存在の検証

私はモデルを持っています, nを持つユーザー, :accounts

そのインスタンスに関連付けられたアカウントがない場合、 User モデルに 2 つの列 (email と passwd) が存在することを検証したいと考えています。Facebookにサインアップするユーザーは、電子メールとパスワードを使用する必要がないという考えです。

今、私はこれを持っていますが、私は立ち往生しています

0 投票する
3 に答える
1389 参照

ruby - Datamapper: レコードを破棄できない理由を報告してください

datamapper と dm-contraints を使用して db モデルをセットアップしています。多対多の関係を持つ 2 つのモデルがありますが、1 つを破棄しようとすると、表示される唯一のメッセージはfalse.

どの関係が正確に問題を引き起こしているのか、datamapper にもっとフィードバックしてもらうことは可能ですか?

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

ruby - Datamapperで、「NoMethodError-undefined method `get!」を取得します。nil:NilClassの場合: "

datamapper用にマップされた2つのテーブルがあります。

LoginSessionオブジェクトが与えられた場合、対応するユーザーを取得したいと思います。

このコードをuser=session.userで実行すると、次のエラーが発生します。

何が間違っているのか理解できません。LoginSessionオブジェクトが対応するユーザーメソッドなどを見つけることができないと思いますか?助けてください!

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

ruby - 複合主キーは、レコードにアクセスするためにのみ使用され、data_mapperにレコードを保存するためには使用されません

フィットネスプログラムでのプレーヤーの進捗状況を追跡するアプリがあります。したがって、すべてのプレーヤーは同じ:week_idで複数の週を持ちます

週IDとbelongs_to関係を組み合わせると、週レコードの複合主キーになります。

ただし、異なるプレーヤーに属する同じweek_idで2週間を作成しようとすると、「列week_idは一意ではありません」というエラーが発生します。

週のレコードを取得する場合、それを取得するには2つの引数(week_idとplayer_id)が必要であることが示されるため、私は正しい方向に進んでいるように感じます。

私はおそらくここで簡単なものが欠けています。見せていただければ幸いです。

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

ruby - Ruby Datamapper カウントが機能しない

私がするときのirbから:

そのメールに関連付けられているすべてのルーターのリストを取得します。しかし、私がするとき:

私はいつも0を取得します

この質問も見ました: Ruby Datamapper .count は常に 0 を返しますが、なぜそれが機能しないのかはまだわかりません。

-- 更新 #1 --

Router.all コマンドの出力を次に示します。ご覧のとおり、結果が返されます。

しかし、提案どおりに Router.count を実行すると、まだ 0 が返されます

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

ruby - Ruby DataMapper::Collection のすべての異なるプロパティ値を取得するにはどうすればよいですか?

ruby 1.9.3と ruby​​-datamapper を使用していpostgresqlます。エントリでいっぱいのテーブルがあり、それぞれに と の 3 つのプロパティがidありtextますcreated_at。最後はDateオブジェクトです。

私のアプリケーションでは、SELECT次のようなエントリがいくつかありますcollection = Entry.all(:text => /SomeRegexp/)。返された で発生するのすべての異なる値を知りたいと思います。以下の2つの方法を考えました。created_atDataMapper::Collection

  1. を繰り返し、DataMapper::Collectionすべての日付を収集します。

    長所:

    • それはうまくいくはずです

    短所:

    • 大量のデータの場合は遅い
  2. データベースに毎日のエントリを要求し、collection != nil の日付を収集します。

    長所:

    • 特に大量のデータでは、上記の例よりも高速である必要があります

    短所:

    • 多くのデータベース クエリ

注意: 上記のコードはテストされていない疑似コードです。実際のコードが何をすべきかについて読者に大まかなアイデアを提供するだけなので、動作する可能性は低いです。より詳細な例が必要な場合は、お気軽にコメントしてください。

次の通知: 疑似コードにエラーが見つかった場合はお知らせください。より迅速に作業を開始できます。;)

最後に私の質問は次のとおりです。

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

mysql - RubyアプリのDataMapperDBプール

dm-sweatshopを介してデータを生成し、負荷テストで使用するためにレガシーMySQLデータベースにロードするマルチスレッドRubyアプリケーションを作成しています。1つの例外を除いて、すべてが正常に機能しています。数百万のレコードをロードしていますが、DB接続プールのサイズを増やして処理を高速化することはできないようです。10接続でスタックしているようです。アプリケーション自体のスレッドプールサイズを増やしてみましたが、MySQLを見ると、10を超える接続が確立されていないようです。

私は元々、DataMapperのセットアップにURLを使用していました。

しかし、私はこれに移動して、DBプールサイズを設定しようとしました。

プールのサイズを増やすにはどうすればよいですか?DataMapperで見つけることができるすべてのRDocとドキュメントに注いだように感じますが、その方法がわかりません。この時点でこれを機能させるためにActiveRecordに切り替えたはずですが、このレガシーDBに必要な複合主キーをサポートしていません。

参考までに、マルチスレッドに「thread / pool」gemを使用しており、アプリはRuby1.9.3で実行されます。複数のスレッドでDataMapperを使用する方法は次のとおりです。