問題タブ [arel]
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 - ActiveRecord::Relation は、外部キーだけでなく、より多くの条件で結合します
ActiveRecord::Relation を使用して左外部結合に複数の条件を指定する方法はありますか?
たとえば、次の SQL ステートメントを考えてみましょう。ActiveRecord::Relation オブジェクトを使用して、これをどのように書き換えることができますか?
ActiveRecord 3.0.3+ でこれを行う方法はありますか?
前もって感謝します。
ruby-on-rails-3 - Rails 3、RSpec 2.5: 名前付きスコープで should_receive または stub_chain を使用する
Rails 3.0.4 と RSpec 2.5 を使用しています。私のコントローラーでは、名前付きスコープを多用しています。たとえば、
私のテストでは、文言ではなく、そのようなクエリの結果をモックできるようにしたいと考えています。次のようなことをしても意味がないと思います
名前付きスコープの並べ替えを決定した時点で、このテストは失敗するためです。
Rails 2.3 と RSpec 1.x では、これはうまくいきました。
上記の呼び出しはキャッチされ、正しく処理されます。しかし、Rails 3 では、何らかの理由でこれが機能しなくなりました。
なんで?ネストされたスコープの結果に期待値またはスタブを設定するにはどうすればよいですか? Rails 3 の ActiveModel 内のすべてが名前付きスコープであるため (ARel のおかげで)、これは何らかの方法で可能でなければならず、そうしないとテストが非常に脆弱になります。
ありがとう!
更新: GitHub の問題レポートも参照してください。
ruby-on-rails-3 - Rails3 & ActiveRecord::Relation - Arel と OR
イベントと呼ばれるモデルで定義されたスコープがいくつかあります。ここで、OR 演算子を使用してそれらを結合する必要があります。私は Rails3 を使用していますが、ActiveRelation と Arel、およびこれをどのように使用するべきかについて少し混乱しています。
イベントを取得する方法
しようEvents.for_company(X).or(issues)
とすると、エラーが発生します
NoMethodError: #ActiveRecord::Relation の未定義のメソッド「or」
を使っEvents.for_company(Company.find(1)).arel.or(Events.issues)
て
NoMethodError: #Arel::SelectManager の未定義のメソッド「or」
問題である、またはユーザーが決定された会社の場所であるすべてのイベントを取得したい。
ありがとう。
sql - ActiveRecord::Relation クエリを反転する方法はありますか?
以下があるとしましょう:
どうにかして逆 SQL クエリを取得できますか?
私が探しているものは、おそらく次のようになります。
ruby-on-rails-3 - User.where(:id => [1,2])。where(:id => 2).arel.to_sql予期しない結果
Railsコンソールから次のコマンドを実行すると、予期しない結果が発生します。
私はそれがであるとは思っていませんOR
。
この例はUser
、メソッドを定義するテーブルレスモデルの非常に単純化された例です。
データベースのどこCars
に保存されますか。その後、コントローラーで
(わかりました、これも単純化された例ですが、私が達成しようとしていることをはるかに表しています)
ruby-on-rails - Railsでレコードが関連付けられていないレコードを検索したい
単純な関連付けを考えてみましょう...
ARelやmeta_whereに友達がいないすべての人を取得するための最もクリーンな方法は何ですか?
そして、has_many:throughバージョンはどうですか
私は本当にcounter_cacheを使いたくありません-そして私が読んだものからそれはhas_manyで動作しません:through
すべてのperson.friendsレコードをプルして、Rubyでループさせたくありません-meta_searchgemで使用できるクエリ/スコープが必要です
クエリのパフォーマンスコストは気にしません
そして、実際のSQLから離れるほど良い...
sql - Rails 3 / Arelのスコープ内のSQL OR
Rails 3モデルスコープを作成しようとしています。これは本質的に次のとおりです。
問題は、これを機能させる方法が見つからないことです。
私は arel_table が機能することを望んでいましたが、「ActiveRecord::Relation にアクセスできません」と不平を言っています:
これは、「公開」スコープを Arel として複製することで実行できますが、コードを繰り返すことになります (私のプロジェクトでは、「公開」スコープはかなり詳細です)。
私が思いつくことができる最高のものはこれです:
ruby-on-rails - Rails 3 に含まれる要素を注文する方法
today
私は多くのモデル関係を持っていますtasks
ユーザーのtoday
オブジェクトを取得し、tasks
それらをすべてJsonに含めてレンダリングしようとしています。は HTML ページのレンダリングにも使用されるため、オブジェクトtasks
内でを注文することにするまで、これはすべて順調に進んでいました。を含めて注文する方法はありますか?today
respond_with block
tasks
私はこのようなことを試みています:
これはすべてを正しく取得しますが、タスクをまったく順序付けしていないようです。
これは私が以前持っていたものです(うまく機能しましたが、順序がありませんでした):
データを取得して、後で次のように並べ替えることができることはわかっています。
これは機能し、テストに合格しますが、これを解決する ActiveRecord の方法を望んでいました。
ruby-on-rails-3 - ActiveRecord :: Base.find(something).methodをshould_receiveでどのように指定しますか?
次のコードがあるとしましょう。
should_receiveでどのように指定する必要がありますか?Post#fix_published__at!
ruby-on-rails-3.1 - アクティブレコードのサブクエリ
SQL を使用すると、このようなサブクエリを簡単に実行できます
これにより、次が生成されます。
Rails の 3 つの activerecord/arel/meta_where を使用してこれを行うにはどうすればよいですか?
実際のサブクエリが必要です/必要です.rubyの回避策はありません(いくつかのクエリを使用します)。