問題タブ [active-record-query]
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 - Rails:特定のユーザーの最後のメッセージ作成時間を取得するにはどうすればよいですか?
ユーザーは複数のメッセージを持つことができます:
最新のメッセージ時間を取得するには、次のようにします。
何らかの理由で、これを行うためのより良い方法があると確信しています。
これをどのように行いますか?
ruby-on-rails - Rails:コメント付きのメッセージを並べ替える方法は?
メッセージには複数のコメントを含めることができます。
次の名前付きスコープは、指定された時間範囲で作成されたメッセージを、作成時間の順に(最新のものから)返します。
特定の時間範囲で作成された投稿(メッセージ自体またはそのコメントの1つ)を持つメッセージを、最新の投稿の作成時間(最新のもの)の順に並べて返す名前付きスコープを作成するにはどうすればよいですか?
例:
次のメッセージが存在する場合:
それから
戻る必要があります:
Message 3
投稿は2010年2月より前に作成されたため、含まれていません。
Message 2
最新の投稿(2011年8月)があるため、最初になります。
ruby - Rubyでは、ActiveRecordを使用して、いくつかの条件を考慮して、親オブジェクトに属しているオブジェクトを取得する最良の方法は何ですか?
私のモデルではOrganisation
has_many :users
、 と とUser
has_and_belongs_to_many :roles
とRole
がname
ありhas_and_belongs_to_many :users
ます。
私のOrganisation
クラスでは、を持っている人に属する をget_admin
取得することになっているメソッドがあります。そのようです:User
Organisation
Role
'admin'
ActiveRecord::Relation
残念ながら、これはではなく オブジェクトを返しますUser
。
.first
私はそのように行末に追加しようとしました
しかし、私が得るのはSQLエラーだけです
私のスキーマは次のように定義されています。
Organisation
のget_admin
メソッドを (次のように) 実際に返すように書き直すにはどうすればよいUser
ですか?
乾杯
デイブ
ruby-on-rails - ActiveRecord クエリ チェーン
この ruby/rails 構造は、いつも私を困惑させます:
これは左から右に実行する必要があるため、連続する呼び出しごとにレシーバーが設定されます。where
のインスタンスを返すUser クラスから始めますActiveRecord::Relation
。次にlimit
、そのインスタンスで が呼び出され、 の別のインスタンスが返されますActiveRecord::Relation
。次にusing
、そのインスタンスで呼び出されます (たまたまシャードが選択されます)。全体がオブジェクト内に SQL クエリを構築しているActiveRecord::Relation
と思います。私の質問は、「何がクエリの実際の実行をトリガーするのか」ということです。クエリをさらに変更する後続処理がチェーン内に存在する可能性があるため、チェーン内の特定の時点で実行することはできません。そのあともusing
追加のメソッドがチェーンに追加されているかどうかがわからないため、クエリはまだ実行できません。明らかに、構築後にクエリを実行しますが、クエリは実際にどのように呼び出されるのでしょうか?
ありがとう...チェーン内のメソッドの名前には「セマンティクス」があることがわかりました。作成中のクエリをさらに変更する人もいます。最後の 1 つだけが、データのフェッチが必要なタイプである可能性があります。
ruby-on-rails - Rails:acts-as-taggable-on: リレーションでの tagged_with の使用
モデル B と 1 対 1 で関連付けられているモデル A があるとします。モデル B は「acts_as_taggable」に設定されています。特定の文字列を持つ B 属性が tagged_with であるすべての A インスタンスを選択するアクティブなレコード関係を返したいと思います。A.where('b.tagged_with = ?', 'some_tag')
私はこのSOの質問を見つけましたが、アクティブなレコード関係を取り戻すことに興味があるので、2番目の解決策しか適用できず、機能させることができません。アクティブなレコード関係を取り戻すにはどうすればよいので、他のクエリ パラメータ メソッドを呼び出すことができます。A.b_tagged_with('tag').where(...) b_tagged_with は名前付きスコープです
ruby-on-rails-3 - このレール計算をデータベースにプッシュできますか?
アプリ層ではなくデータベースで作業を行うことでアプリの効率を上げようとしていますが、この計算をデータベースに移動できるかどうか疑問に思っています。
モデル:
私がやりたいことは、オファーの価格を計算することです。現在、Offer クラスに price メソッドがあります。
Offer.sum
レコードをループするのではなく、DB から直接回答を取得する代わりに計算を行うことができるのではないかと思いますが、ActiveRecord クエリ ガイドの計算セクションには、私を助けるのに十分な詳細がありません。誰か?
ありがとう!
yii - CGridviewとYiiActiveRecordの関係
次の構造の2つのテーブルtbl_businessとbusiness_contactsがあります。
と
シナリオでは、1つのビジネス行に多くの連絡先があります。私はgiiのCRUDジェネレーターを使用してcGridviewを使用しており、各tbl_businessレコードのbusiness_contacts(テーブル内の複数の可能な行の1つ)からの名と姓を表示する必要があります。
私が理解している限り、tbl_businessのモデルのリレーション関数を次のように更新しました。
同様に、連絡先関係はbusiness_contactsのモデルで次のように定義されます。
グリッドにbusiness_id、contact_firstname、contact_lastname、... otherbusinesstablecolumns ..のようなものを含めることができるように、関連するレコードをプルするために機能すると期待していましたが、firstnameとlastnameの下に空白の値しか表示されません..誰か助けてください私はエラーを理解していますか?:(
active-record-query - ActiveRecord にスタンドアロンの句を含めることはできますか?
次のように、2 つのクエリで where 句を除外したいと思います。
しかし、ActiveRecord は満足していません。クエリビットを個別に分割できると思いました。
ruby-on-rails - Railsのテキストフィールドでの自然ソート
私は以下のような写真アルバムのリストを持っています:
タイトルで並べ替えると、次のようになります。
私が彼らになりたいところ:
基本的にはタイトルを自然順にしたいのですが、アルファベット順の自然順です。私のためにこれを正しく行うタイプの宝石はありますか?
よろしく、ニール
ruby-on-rails-3 - 多対多関係のアクティブ レコード クエリ
Event と呼ばれるモデルと Product と呼ばれる別のモデルがあります。イベントには多くの製品があり、製品には多くのイベントがあります ( と呼ばれる結合モデルを介してEventproduct
)。現在の日付範囲が別のイベントの日付範囲と一致するイベントに含まれていないすべての製品を選択するクエリを設計しようとしているため、ユーザーが日付範囲でイベントを作成すると、利用可能な製品が表示されるため、同一商品の同時出展はできません。これはアクティブ レコード クエリ インターフェイスで可能ですか、それとも独自の SQL クエリを作成する必要がありますか。
私の移行は次のようになります。
関連するモデルは次のとおりです。