問題タブ [sequel]

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

ruby - Sequel :: Modelを使用して2つのテーブルにページ分割するにはどうすればよいですか?

変更点として、Railsアプリではなく、Ramaze、つまりSequelベースのアプリを使用しています。

結合テーブルを介して、および結合テーブルTagを介して多対多に関連付けられているモデルがあります。:posts:taggings:external_posts:external_post_taggings

これらの関連付けの両方をまとめて、created_at各テーブルで呼び出される日付フィールドで並べ替えたいと思います。

ページネーションなしで、私はします:

ただし、ページ付けを使用する必要があります。.postsだけの場合は、次のようにします。

しかし、それが可能であるとしても、2つのテーブルにまたがる方法はわかりません。

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

ruby - Sequel と Ruby を使用してクエリから返される文字数を制限するにはどうすればよいですか?

私のモデルはArticleで、記事の本文のスニペットだけを表示して、この特定の記事のプレビューを表示したいと考えています。

Sequelでそれを行うにはどうすればよいですか?

を使用している可能性があると思いましたがlimit、それはデータベースから返されるレコードの数を制限するだけです。

理想的には、次のようなことをしたいと思います: Article.first.limit(40)40 は最初の 40 文字です。

うまくいかないことはわかってlimitいますが、探しているものを説明するための例として使用しています。


編集1:

シナトラを使用しています。ルーティング ファイルではなく、ビューから返される値を制限したかったのです。

ルーティング ファイルで次のようにします。

type のすべてのセクションのリストが表示されますa

次に、記事にたどり着くために、次のことを行います。

このシナリオに基づいて、返される「name」属性のサイズを制限したいと考えています。

しかし、それを行うと、次のエラーが発生します。

name属性のサイズを制限できるようにするにはどうすればよいですか?

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

sql - 定数の続編フォーマット、selectでの関数呼び出し?

その一部として関数呼び出しと定数を含み、エイリアスを使用するSequelデータセットを作成する方法を理解しようとしています。select私は適切な構文に固執しています。

生のSQLの挿入を避けようとしていますが、結果のデータセットをチェーンして生のSQL内の列エイリアスを参照できる限り、挿入する必要があります。

私の実際のクエリはもっと​​複雑です(実際には呼び出していませんsin。これは関数呼び出しの単なる例です)が、説明のために、SQLで実行しようとしていることの簡略版を次に示します。

同等の、理想的な、続編は何でしょうか?これまでのところ:

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

ruby - Sequel でテーブル ビューのメソッドを作成するにはどうすればよいですか?

Sequel でテーブル ビューを作成し、ファイルに入れましたdb_views.rb

「ファット モデル シン コントローラー」の実践に従うために、:bn_view.

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

ruby - Sequel 関連付けでテーブルを動的に選択するにはどうすればよいですか?

Aとという 2 つのモデル間に 1 対 1 の関連付けを作成しようとしていますB。モデルBは、存在するFoo場合は table Foo、またはBar他のすべての状況では table のいずれかに存在できます。

:datasetone_to_one 関連付けメソッドのフラグを使用して機能させようとしましたが、循環依存関係を導入せずに機能させる方法がわかりません。

Sequel 関連付けでこれを達成する方法はありますか? それとも、SQL を手書きするのが最善の方法でしょうか?

0 投票する
4 に答える
2306 参照

sql - SQLクエリが読み取り専用であることを確認してください

SQLクエリがデータベースのデータを変更しないようにするための最良の方法は何でしょうか。

私のシナリオでは、データベースレイヤーにアクセスできず、アプリケーションレイヤーでのみこのロジックを実行できます。

宝石、ルビーカスタムスクリプトの使用をお勧めしますか?

0 投票する
5 に答える
5249 参照

ruby - カーソルまたはスマート フェッチを使用する Ruby ORM はありますか?

ActiveRecord を置き換える Ruby ORM を探しています。Sequel と DataMapper を見てきました。それらは非常によく見えますが、必要のないときにすべてをメモリにロードしないという基本的なことを行っているようには見えません。

つまり、多くの行を持つテーブルの ActiveRecord と Sequel で次の (または同等の) ことを試しました。

二人とも記憶に夢中です。必要に応じてフェッチするのではなく、すべてをメモリにロードするようです。ActiveRecord でを使用しfind_in_batchesましたが、受け入れられる解決策ではありません。

  1. 問題が多すぎるため、ActiveRecord は受け入れられるソリューションではありません。
  2. コードでページング メカニズムを認識する必要があるのはなぜですか? ページのサイズをどこかに設定できてうれしいですが、それだけです。次のようなことfind_in_batchesをする必要があります。

    post.find_in_batches { |バッチ| batch.each { |p| p を置きます } }

しかし、それは透明であるべきです。

では、フェッチを適切に行う信頼できる Ruby ORM はどこかにありますか?


アップデート:

Sergioが述べたように、Rails 3では、find_eachまさに私が望むものを使用できます。ただし、ActiveRecord はオプションではないため、誰かが本当にそれを使用するよう説得できる場合を除き、質問は次のとおりです。

  1. find_each と同等の機能をサポートする ORM はどれですか?
  2. どうやってするの?
  3. find_eachwhileが必要なのはなぜfindですか?
0 投票する
2 に答える
2000 参照

ruby - nginxでPhusionPassengerに取り組んでいる間、SequelDB接続に適した場所

私はSinatra+Sequelを使用してrubyで書かれたテストアプリを持っています。

config.ru:

コード例:

テスト環境でPhusionPassengerを使い始めるまでは、すべて問題ありませんでした。nginx error.logに例外があります:

Sequel :: DatabaseError-RuntimeError:接続はフォークされたプロセスで再利用できません。

DB接続ルーチンをラックアップファイルconfig.ruに配置するのは正しいことですか、それとも別の方法で行う方が良いですか?アプリケーションコードから接続を正しく呼び出す方法よりも最初のバリアントの場合はどうなりますか?

PS:アプリコードで接続を開いて続行できることは知っていますがpassenger_spawn_method conservative、速度とリソース使用量の問題があるため、私が探している方法ではありません。

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

mysql - Heroku db:push->欠落している続編の宝石

ローカルのMySQLデータベースをHerokuのClearDBMySQLデータベースにプッシュしようとしています。私は宝石の紛失などの多くのエラーを経験し、1つで立ち往生しています。私が実行している:

確認のためにアプリケーション名を入力するように求められます。その後、次のような多くのエラーが発生します。

Sequel gemがインストールされていて、正しいバージョン(3.20.0)であるため、これは奇妙です。私はすべての宝石を完全に再インストールしようとしましたが、それでも運がありませんでした。

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

ruby-on-rails - トランザクション テーブルから最新のエントリを取得するにはどうすればよいですか?

これは、通常の AREL または Sequel の gem ベースのモデルとは少し「すぐに使える」ものなので、専門家のガイダンスを探しています。

何かがデプロイされるたびに更新される、アプリの外部にあるレガシー (トランザクション) テーブルがあります。Deployments次のようになります。

上記のマークされた線は、DEPLOY_ID一意のAPP_DEPLOY_NAME + DEPLOY_TYPE + DOMAIN + DEPLOY_ENVエントリごとの最高値を表しています。概念的には、これらはこれら4 つの値によって定義される複合キーの最新の展開です。

SQL では、自己結合を使用してこのビューを簡単に作成できます。

(おそらくもっと良い書き方がありますが、それは私がやろうとしていることを示しています)

ただし、これはクエリチェーンの利点を失います...つまり、次のようなものを取得できないようです: latest.filter(:APP_DEPLOY_NAME.like('%adn%'))

その他のシワ:

  • 私はデータベースを所有していないので、ビューを追加できません。
  • 独自のテーブルを作成する場合、データの更新について心配する必要があります (トランザクション テーブルはライブであり、継続的に更新されます)。

何か案は?