問題タブ [squeel]
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.
activerecord - Rails 4: オプションの結合を使用したクエリ
私は次のクラスを持っています。彼らは同じように機能します。多くの学校では、保護者、従業員、学生のいずれかになり、ユーザーも 1 人です。
特定の学校に属するすべてのユーザーを 1 回のクエリで取得するにはどうすればよいですか? たとえば、従業員であるすべてのユーザーを取得するには、( squeel
gem を使用して) 実行できます。
3 つのケースすべてを含めるには、どのクエリを作成すればよいかわかりません。ご協力いただきありがとうございます
sql - 列にすべてのパラメータがある製品を選択します
Product
モデルとがありProductParams
、ここに製品 ID を格納し、列にいくつかの追加のパラメーター ( param
) とパラメーター タイプを指定します。次のようになります。
で呼び出すと、最初の製品のみを取得するにはどうすればよいparams = [blue, hard]
ですか?
とりあえず みたいなのを考えたんですけどProduct.joins{product_params}.where{product_params.param.in params}.uniq
、あまりにも2位なblue
ので…
私は squeel gem を使用して SQL クエリを作成しますが、回答も squeel にある必要はありません。
編集
解決策を思いつきましたが、少し奇妙です:
しかし、もっと優雅なものがあれば素晴らしいでしょう。
ruby-on-rails - ActiveRecord::QueryMethods::WhereChain
を使用していますが、 ではなくクエリから返された をsqueel
取得しています。ActiveRecord::QueryMethods::WhereChain
ActiveRecord::AssociationRelation
クエリ:
返すクエリAssociationRelation
引用符によって戻り値の型が変わることに注意してください。
モデル
これActiveRecord::QueryMethods::WhereChain
が何であり、どのように使用または回避できるか考えていますか?
- ルビー 2.0.0
- レール4.0
- きしむ 1.1.1
ruby-on-rails - ActiveRecords 条件付きで結合: squeel sifter を使用して異なる条件セットで同じテーブルに結合する方法は?
User と UserSkill という 2 つのアクティブ レコード クラスがあります。UserSkill には、以下に示すように、スクイール シフターがあります。
と
私は現在検索を実装しており、コントローラーにこれがあります:
私の問題は、基本的に、関係が適用されると、次のSQLになることです。
これは私が望むものではありません:
実際、skill_id が 10 の user_skill を持つユーザーと、skill_id が 11 で値が 2 より大きい user_skill を持つユーザーが必要です。
ActiveRecords は条件を「連鎖」しているように見えますが、UserSkill は同時に 10 と 11 の ID を持つことができないため、常に空の関係になってしまいます!
同じ user_skill 行ではなく、最初の条件と 2 番目の条件を順番に満たす user_skills を持つユーザーを取得できるように、最初の条件と 2 番目の条件をどうにかして区別したいと思いますが、達成方法がわかりません。それ!
エイリアスを使用するのがよいと思いますが、squeel または ActiveRecord 構文を使用して参照したい user_skill ごとに異なるエイリアスを指定するにはどうすればよいですか?
私の質問はこれと非常に似ていると思いますが、ループを使用しているため、提案されたソリューションを使用できないと思います!
編集: squeel github でもこれを見つけましたが、特定のユース ケースに適用する方法がわかりません:同じリレーションで複数の結合の結合をエイリアスする方法が必要です
最終編集:
私は動作するSQLでソリューションを書きましたが、ご覧のとおり、非常に醜いです:
ruby-on-rails-3 - ユーザーがsqueelに日付を入力していない場合にすべてのレコードを返すために、日付のデフォルト値を指定する必要があります
私は squeel gem を使用しています。ユーザーが従業員の入社日を入力しない場合、すべてのレコードを返す必要があるというシナリオがあります。それ以外の場合は、従業員の入社日に基づいてレコードを返します。私のクエリは次のようになります:
date = Date.today Employee.joins {passports.visas}.where { (employees.joining_date.eq "%#{date}%")
日付がユーザーによって指定されていない場合、すべてのレコードを取得するには、日付のデフォルト値を何に設定する必要がありますか?
sql - Ruby on Rails 4 で Active Record または Squeel Gem を使用して SQL クエリを書き直す
Ruby on Rails 4 を使用して、この SQL クエリを Squeel または直接 Active Record で書き直すのに多くの問題があります。
実行前に、クエリ内の 3 つの数値すべてをクエリに渡す必要があります。SQL クエリは以下のとおりです。
Ruby on Railsのコントローラーでクラスメソッドをチェーンしようとするとエラーでどのように使用されているかについて詳しく知ることができます
ruby-on-rails - Ruby on Rails で Squeel クエリを pg_search クエリと連鎖させることはできません
次のコードを実行して、コントローラーで検索を実行したいと思います。
専門家_コントローラー.erb
アプリを実行すると、次のエラーが表示されます。
pg_search を使用する text_search メソッドを削除すると、計画どおりに動作します。
エラーが発生する理由と修正方法を教えてください。
これが私のコードです。
ユーザーモデル - user.erb