問題タブ [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.
ruby - Ruby/Sinatra では、Datamapper の .all は機能しますが、.get は機能しませんか?
Sinatra のパスからデータを取得し、それを使用して Datamapper を使用して特定のレコードを検索しようとしています。Datamapper docs はそれを示しているようです。
シンボル に関連付けられたすべてのレコードを検索する必要があります。test_path
これは動作しません。test_get は nil になります。
一方、機能するのは
私の2つの質問は次のとおりです。
- Datamapper の .get() 呼び出しで何が間違っていますか?
- .all(:name => value) メソッドは .get() より遅いですか、それともどちらを使用しても問題ありませんか?
これは、動作を示すために簡略化された Sinatra スクリプトです。
ruby - Sinatra の DataMapper エラー - NameError: child_model が見つかりません
Sinatra と DataMapper を使用します。2 つ以上のモデル クラスを使用するのはこれが初めてです。エラーの原因がわかりません。ありがとう。
エラー:
モデル:
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.rb
database.rb
私db_scheme.rb
が要点です。
datamapperがそのように動作する理由はありますか?
ps。データベースを作成するメソッドを手動で実行して、データベースにデータをロードdatabase.rb
します。
よろしくお願いいたします。よろしくお願いいたします。
ruby - 関連付けが存在する場合と存在しない場合の DataMapper での 2 つのフィールドの存在の検証
私はモデルを持っています, nを持つユーザー, :accounts
そのインスタンスに関連付けられたアカウントがない場合、 User モデルに 2 つの列 (email と passwd) が存在することを検証したいと考えています。Facebookにサインアップするユーザーは、電子メールとパスワードを使用する必要がないという考えです。
今、私はこれを持っていますが、私は立ち往生しています
ruby - Datamapper: レコードを破棄できない理由を報告してください
datamapper と dm-contraints を使用して db モデルをセットアップしています。多対多の関係を持つ 2 つのモデルがありますが、1 つを破棄しようとすると、表示される唯一のメッセージはfalse
.
どの関係が正確に問題を引き起こしているのか、datamapper にもっとフィードバックしてもらうことは可能ですか?
ruby - Datamapperで、「NoMethodError-undefined method `get!」を取得します。nil:NilClassの場合: "
datamapper用にマップされた2つのテーブルがあります。
と
LoginSessionオブジェクトが与えられた場合、対応するユーザーを取得したいと思います。
このコードをuser=session.userで実行すると、次のエラーが発生します。
何が間違っているのか理解できません。LoginSessionオブジェクトが対応するユーザーメソッドなどを見つけることができないと思いますか?助けてください!
ruby - 複合主キーは、レコードにアクセスするためにのみ使用され、data_mapperにレコードを保存するためには使用されません
フィットネスプログラムでのプレーヤーの進捗状況を追跡するアプリがあります。したがって、すべてのプレーヤーは同じ:week_idで複数の週を持ちます
週IDとbelongs_to関係を組み合わせると、週レコードの複合主キーになります。
ただし、異なるプレーヤーに属する同じweek_idで2週間を作成しようとすると、「列week_idは一意ではありません」というエラーが発生します。
週のレコードを取得する場合、それを取得するには2つの引数(week_idとplayer_id)が必要であることが示されるため、私は正しい方向に進んでいるように感じます。
私はおそらくここで簡単なものが欠けています。見せていただければ幸いです。
ruby - Ruby Datamapper カウントが機能しない
私がするときのirbから:
そのメールに関連付けられているすべてのルーターのリストを取得します。しかし、私がするとき:
私はいつも0を取得します
この質問も見ました: Ruby Datamapper .count は常に 0 を返しますが、なぜそれが機能しないのかはまだわかりません。
-- 更新 #1 --
Router.all コマンドの出力を次に示します。ご覧のとおり、結果が返されます。
しかし、提案どおりに Router.count を実行すると、まだ 0 が返されます
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_at
DataMapper::Collection
を繰り返し、
DataMapper::Collection
すべての日付を収集します。長所:
- それはうまくいくはずです
短所:
- 大量のデータの場合は遅い
- それはうまくいくはずです
データベースに毎日のエントリを要求し、collection != nil の日付を収集します。
長所:
- 特に大量のデータでは、上記の例よりも高速である必要があります
短所:
- 多くのデータベース クエリ
- 特に大量のデータでは、上記の例よりも高速である必要があります
注意: 上記のコードはテストされていない疑似コードです。実際のコードが何をすべきかについて読者に大まかなアイデアを提供するだけなので、動作する可能性は低いです。より詳細な例が必要な場合は、お気軽にコメントしてください。
次の通知: 疑似コードにエラーが見つかった場合はお知らせください。より迅速に作業を開始できます。;)
最後に私の質問は次のとおりです。
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を使用する方法は次のとおりです。