問題タブ [activerecord-relation]

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 投票する
2 に答える
313 参照

ruby-on-rails - あいまいなテーブル参照

この問題はかなり単純に思えますが、このような問題に遭遇したことはありません。

設定は次のとおりです。

投稿を読んでいる読者がいるかどうかを調べる必要があります。

@post.reader_links.where('created_at >= ?', 45.minutes.ago).any?

よく働く。

@post.readers.where('created_at >= ?', 45.minutes.ago),any?

列がリーダーオブジェクトの列を意味するのか、 reader_linkオブジェクトの列を意味するのかが混乱するため、あいまいなテーブル列エラーがスローされます。これは、リーダーのクラスが実際にはUser であるためです。45 分前に reader_links によって作成された読者を照会するにはどうすればよいですか?created_at

私は次のようなものを探しています..

@post.readers.where('reader_link.created_at >= ?', 45.minutes.ago)

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

ruby-on-rails - arel オブジェクトを ActiveRecord::Relation チェーンにマージする方法は?

以下を混合SQL/文字列の代わりに厳密にArelメソッドを使用するように変換する方法は知っていますが、結果のarelオブジェクトをActiveRecord::Relationにマージする方法がわからないので、さらにAR::Relationメソッドを連鎖させることができます.

以前の質問に対して、次の非常に役立つ回答を得ました。

私はこのようなことをしようとしました:

しかし、私は arel オブジェクトになってしまい、それを次の ActiveRecord::Relation とマージする方法がわかりません:

Person.joins(:address).merge(Address.anywhere(query_term))

(言うまでもなく、注入もあまりエレガントではありません-どうすれば改善できますか?)

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

sql - Select呼び出しを使用した二重ネスト結合のRails Active Recordクエリ

次のスキーマがあります。

写真has manyグループのhas manyユーザー。

私はこの Rails サーバーを iOS アプリケーションのバックエンドとして使用しており、写真が追加されたときに、グループに関係するすべてのユーザーに常に通知を送信する必要があります。

私の問題は、影響を受けるものだけを解決するための最も安価なクエリを見つけることUser.idsです。

これまでのところ、

この後にselect引数を入れなければならないことはわかっていますが、私の人生の構文を理解することはできません。

写真が与えられた場合、影響を受けるユーザー ID のコレクションを見つける最も効率的な方法を探しています。

どんな助けでも大歓迎です!!!

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

ruby-on-rails - テーブルレス モデルから ActiveRecord::Relation を返す

私のアプリケーション (Rails 4) では、User モデルは「ローカル」データベースには保存されていませんが、バックオフィス アプリケーションに保存されています。

そのため、テーブルレス モデル (softace / activerecord-tableless の gem を使用) を使用し、バックオフィスにアクセスするためのモジュール「ApiUser」を使用しています。

ユーザー モデル (テーブルレス) は、バックオフィスでのすべての操作 (データの読み取りまたは書き込みなど) にこのモジュールを使用します。

私のモデルでは、「all」メソッド (およびバックオフィスからデータを取得する API の対応する関数) を実装しています。
差し当たり、モデルでは、次のようにして、データが取り込まれた配列を作成しますresult[:user].each { |user| users << User.new(user) }('result[:user]' は、モジュールによって取得されたデータです)。
それはかなりうまく機能しますが、私は他のモデルとの関係 (has_many) を持っており、いくつかの自動関数はその関係では機能しません ( eachindex_bymap...)。

私の質問は: ActiveRecord::Relation を実際の ActiveRecord モデルのようにシミュレートする方法は?
(おそらくデシリアライズを使用しますか?しかし、役立つものは何も見つかりませんでした。ActiveRecord関係についてRailsCasts 239も読みましたが、役に立ちませんでした)

ありがとう

0 投票する
6 に答える
10380 参照

ruby - Rails は複数のアクティブレコード関係を結合します

複数のアクティブなレコード関係を結合したい

例えば、

この二つの関係を結びつけたい。

マージではなく、マージは apple_companies.merge(banana_companies) => Company.where("name like ? and name like ?", "%apple%","%banana%")

Company.where("name like ? or name like ?", "%apple%","%banana%") にしたい

その後、

コーディングします

しかし、私が書いたコードは会社を配列にします.....

そのため、注文して会社にページングすることはできません... :(

ありがとうございました

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

sql - ruby クエリがシンボルを取得しない - または /

次のコード行があります。

問題は、「2014」だけでクエリを実行した場合のように、クエリの結果が表示されることです。「2014-11-20」と「2014 11 20」についても同じです。そのようなものは、この記号をクエリの終わりか何かとして受け取ります。