問題タブ [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 - アレルアグリゲーション、カウント、アウタージョイン?
私はFact
モデルを持っていhas_many
:votes
ます。投票にもuser_id
フィールドがあります。モデルのスコープで次のことを表現したいと思います。Xに等しいFact
0票のすべてのファクトを教えてください。user_id
私はこれにどのように取り組むかを理解するのに十分なほどアレルに精通していません。アイデア?
activerecord - アソシエーションのActiveRecord::Relationオブジェクトを取得することは可能ですか?
によって定義され
has_many
、belongs_to
利用されるような関連付け方法はありActiveRecord::Relation
ますか?もしそうなら、
ActiveRecord::Relation
使用されているオブジェクトを取得することは可能ですか?
クエリインターフェイスを使用してクエリを作成する場合、Rails3はオブジェクトとバックグラウンドのオブジェクトActiveRecord::Relation
を多用していることは誰もが知っています。クエリインターフェイスの、などのメソッドを使用するたびに、オブジェクトが返されます。ただし、モデルの関連付けメソッドを呼び出す場合はそうではないようです。代わりに、クエリがすぐに実行され、関連付けられたモデルのインスタンスまたはインスタンスの配列が返されます。Arel::Relation
select
joins
ActiveRecord::Relation
次のモデルを検討してください。
post.rb
user.rb
例:
を呼び出すu.posts
と、のインスタンスではなく、投稿の配列が返されますActiveRecord::Relation
。アソシエーションで使用されているActiveRecord::Relation
ものを取得できるのか、使用されているのか、おそらくを使用して取得できるのか疑問に思います。Arel::Table
が必要な理由ActiveRecord::Relation
は明らかです。これは、既存の関連付けを連鎖させて、別の目的に合わせてクエリを操作したいためです。
ruby-on-rails - has_manyで定義された:orderをオーバーライドする方法
私は持っています
名前DESCでソートされたすべての本を照会しようとしています
しかし、結果は
結果は、ソートされたASCという名前で返されます
アソシエーションの元の順序を削除したり、オーバーライドしたりする方法はありますか?または、リレーションで順序を指定するのは悪い考えですか?
Rails3.0.3を使用する
activerecord - ARelクエリが親クラスではなくActiveRecord::Relationshipクラスとして返されるのはなぜですか?
私はクラスを持っています:
Railsコンソールで次のクエリを実行すると:
クラス属性にアクセスしようとするとメソッドエラーが発生しないため、これは重要です。
私は何が間違っているのですか?
ruby-on-rails-3 - 自己参照表に対する AREL ステートメントの作成方法
私はかなりの数の AREL ステートメントを書いてきましたが、これについては自分自身を縛っています。これが私の状況です:
ある値に一致する識別子を持つ子製品を持つすべての製品を取得したいと考えています。
私はこれで自分自身をプレッツェルにひねりました。簡単に思えますが、私はあまりにも長い間見てきました. どんな助けにも感謝します!
ruby-on-rails - Rails 3 および Acl9: 特定のオブジェクト/ロールのすべてのサブジェクトを見つける
私は承認のためにacl9でrails3を使用しています。私はARelとレールのクエリ方法を理解しようとしています。
Companyに属するUserがあり、そのユーザーはCompanyに対して特定の役割 (acl9 が配管を提供します) を持っています。特定の役割を持つ特定の会社からすべてのユーザーを取得するにはどうすればよいですか? アプリケーションで結果をフィルタリングするのではなく、 DB で結果をフィルタリングしたい。
私はこのようなものが欲しい:
rails3 には sql api があることは知っていますが、私は Java/Grails の出身であり、使用する ORM のほとんどにはいくつかの ORM api があります (datamapper はこのように機能すると思いますが、私はプレーンな rails3 を使用しています)。
sql - SQL 集計カウント = 0
Rails 3 アプリに次のモデルがあり、要件を選択します。
class Item < AR
has_many :holdings
class Holding < AR
belongs_to :item
Holding モデルには「アクティブな」ブール値があります。
「アクティブな」所蔵が 0 の各アイテムを見つけたい (関連付けられている所蔵はいくつでもある可能性があります)。かなりの数の組み合わせを試しました。
SELECT * from items JOIN
(SELECT holdings.item_id, count(ifnull(item_id,0)) AS hcount FROM holdings
WHERE holdings.active = "t"
GROUP BY holdings.item_id
HAVING hcount = 0)
ON items.id = holdings.item_id
ただし、これは 0 より大きいカウントのみを返します。
誰かが私を正しい方向に向けることができますか?
ruby-on-rails - NOT NIL を使用した Rails where 条件
Rails 3 スタイルを使用して、次の反対をどのように記述しますか。
IDがnilでない場所を見つけたい。私は試した:
しかし、それは戻ります:
それは間違いなく私が必要としているものではなく、ほとんど ARel のバグのようです。
ruby-on-rails - rails2 から rails3 へのアップグレードの問題
アプリケーションを Rails 2.3.5 から Rails 3.0.3 にアップグレードしようとしています。
モデル:
Project.rb
ProjectRole.rb
project_roles テーブルの列は user_id、project_id、name
次のエラーで苦労しています。提案してください。
ありがとう。
問題は make_project_owner コールバックにあります。create_calendar_for_project は問題なく動作します。
make_project_owner を次のように変更しても、同じ問題が発生します。
Rails のダウングレードを試みました:
rails 3.0.2 -> 同じ問題がある
rails 3.0.1 -> 異なるエラーがあります
ruby-on-rails - Rails3結合からすべての列を返す
モデルに関連付けられている列だけでなく、2つのテーブルを結合してすべての列を返そうとしています。
私はそのようなものを持っています:
SQLは問題ないように見えますが、それでも、コメントのみが返され、それに関連付けられているユーザー情報は返されません。
*
だけでなく、どうすれば取得できますcomments.*
か?