問題タブ [meta-where]

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

ruby-on-rails - Arel&MetaWhereとの複数のLIKEマッチ

SearchLogicを使用してRails-2.3で記述されたアプリケーションを、ArelとMetaWhereを使用してRails-3.0に移行していますが、書き込み方法がわからない操作が発生しています。

古いコードは次のとおりです。

これが行ったLIKEことは、params [:city]配列の各アイテムに対して一致を実行することでした。

これは、検索語が1つしかないMetaWhereでは簡単です。

しかし、これを任意の数の都市でどのように書くのでしょうか?

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

ruby-on-rails - metawhereでタグを検索する

モデルとそれに関連するタグに対して複数列の検索を実行しようとしています。私はmetawhereを使用しており、これにはタグ付け可能として機能します。基本的に、タイトルと本文に名前の付いたタグが一定量あるモデルがあります。このクエリをmetawhereで設定しようとしましたが、モデルのタグに結合しようとしても結果が返されません。次のPostモデルを検索するために使用されている「str」という名前の変数があります...

次のSQLを生成します。

誰かがこれで私を正しい方向に向けることができますか?どんな助けでも大歓迎です。

0 投票する
9 に答える
81898 参照

ruby-on-rails - Railsでレコードが関連付けられていないレコードを検索したい

単純な関連付けを考えてみましょう...

ARelやmeta_whereに友達がいないすべての人を取得するための最もクリーンな方法は何ですか?

そして、has_many:throughバージョンはどうですか

私は本当にcounter_cacheを使いたくありません-そして私が読んだものからそれはhas_manyで動作しません:through

すべてのperson.friendsレコードをプルして、Rubyでループさせたくありません-meta_searchgemで使用できるクエリ/スコープが必要です

クエリのパフォーマンスコストは気にしません

そして、実際のSQLから離れるほど良い...

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

sql - MetaWhereでこのSQLを書く方法は?

MetaWhere(Rails 3)を使用してこのクエリを作成するにはどうすればよいですか?

自己参照アソシエーションでこのRailscastからとの両方を返すUserというメソッドをクラスに追加しようとしています。buddiesfriendsinverse_friends

助けていただければ幸いです!


編集:私は私がすることができるように、返されたセットでクエリできるようにしたいです:


解決策:最後の編集を気にしないでください。既存の関連付けで演算子をis_a_buddy_of?(user)使用して、メソッドをこれに変更しました。|

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

ruby-on-rails - Rails 3 で has_many 関連付けを検索するにはどうすればよいですか (meta_where または railslogic?)

UserHasMessages というモデルがあります。

User.rb モデルは次のとおりです。

関連する UserHasMessages の Message_id が @message.id であるユーザーを検索したい

私はこのようなことを(searchlogicを使用して)試しましたが、うまくいきませんでした.meta_whereでどこから始めるべきかわかりませんでした:

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

ruby-on-rails - それをMetaWhereまたはArelに変換するにはどうすればよいですか?

次のような都市モデルを考えてみましょう。

フィールドが文字列であることを知っているその状況でArelまたはMetawhereを使用するには、次のようなものがあります。

"name" "residents.name" "state.name"

私はそのようなことをしたい(動作しません):

それで、あなたの考えは何ですか?

本当の問題は、どうすればそれを変換できるかということです。

"residents.name LIKE'#{value}%'"

それに:

:residents => {:name =〜 "#{value}%"}

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

sql - PHRASEで始まる単語全体を含むフィールドコンテンツのSQLクエリ

フィールドに複数のキーワードが含まれている行をフェッチするSQLクエリを作成しようとしています。クエリの用途は、jQueryで実装されたオートコンプリート関数の結果をフェッチすることです。

現在、オートコンプリートは機能していますが、私の結果には、特定のフィールドのコンテンツにクエリが含まれているすべての行が含まれます。たとえば、「ar」というフレーズを入力すると、結果には車、ギター、樹皮などが含まれます。

ユーザーは単語の途中のランダムな断片を入力しない可能性が高いため、フレーズで始まる結果のみを返したいと思います。 [私はgemを使用しています] を使用して、最初の単語がクエリで始まるすべての行をフェッチできます。Model.where((:name =~ "#{params[:q]}%")meta_where

ただし、フィールドの2番目の単語がクエリ文字列で始まる行も返したいのですが、最初の単語はそうではありません。

たとえば、行「blackdog」と「dogfood」の場合、クエリ文字列「do」は両方の行を返す必要がありますが、クエリ文字列「do」は「undone」を返さないようにする必要があります。

このような検索のSQLクエリをどのように書く必要がありますか?

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

ruby-on-rails-3 - Rails 3 の metawhere でアソシエーションを検索するにはどうすればよいですか?

searchlogic を使用していたときは、次のように使用できました。

たとえば、Todo レコードに属する連絡先に属するキャンペーンを検索できます。

これは私が試したものです(ソートの方法がわからない:

metawhere でそのようなことを行うにはどうすればよいですか?

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

ruby-on-rails-3 - 関連付けを検索してテーブルに参加するには、どのように metawhere を使用しますか?

Message と UserMessage の 2 つのモデルがあります。SO の別の場所からこのアーキテクチャを取得しましたが、いくつかの課題があります。

各メッセージには 2 つの UserMessage があります。1 つの UserMessage には送信者の user_id があり、もう 1 つは受信者の user_id があります。これにより、一方の当事者が他方とは別にメッセージのステータスを削除または変更できます。

sender_id と receiver_id の間で送信されたすべてのメッセージのリストを見つけるにはどうすればよいですか?

たとえば、 UserMessage.where(:user_id => sender_id) を実行すると、受信者だけが表示されません。

また、1 つのメッセージに多数の UserMessage が含まれる場合があるため、メッセージを一意に検索またはグループ化できる必要があります。つまり、5 つの UserMessage がすべて同じメッセージに属している場合、そのメッセージの最新の日付の UserMessage が必要です。

1 つの UserMessage が sender_id で、もう 1 つが receiver_id であるすべてのメッセージのリストを生成できるかどうかを考えていますが、それはうまくいくでしょうか?

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

ruby-on-rails - metawhereとjoinsを使用してこのクエリを実行するにはどうすればよいですか?

User.rbがあります:

各Message.rbには、account_idメソッドと:givereceiveメソッドがあります。

Account.rbモデルのメソッドを作成して、account_idがそのアカウントと同じで:givereceive = "Give"であるメッセージを送信したすべてのユーザーを(一意に)表示できるようにします。

私は次のことを試しました:

しかし、メッセージとの関連付けがないというエラーが表示されます。

また、これによって重複するインスタンスが削除されることはありません (たとえば、同じユーザーが同じアカウントで複数のメッセージを作成した場合)。

私はコンソールでそれをテストしていて、metawheregemを持っています。

ありがとう。