問題タブ [ransack]
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 - ransack を使用して where 条件にフィールドを追加するにはどうすればよいですか?
ransack 述語を使用してクエリを作成しているため、SQL に関して WHERE 句に多くの条件が必要です。ransanck のsearch
メソッドの条件のハッシュとして私が持っているものは次のとおりです。
これはのコンソール出力ですparams[:q]
これが生成する SQL クエリです。
これにより、次のことが得られます。
where
句内にすべてのフィールドを含めるにはどうすればよいですか?
ご覧のとおり、:price
フィールドだけがwhere
句内に残っています。私も節に含まれる必要が:baths
あり、含まれる必要があります。:rooms
where
どうすれば修正できますか?
ruby-on-rails - Ransack: ページ サイズはカスタマイズできますか?
私は Spree を使用しており、products/search コントローラー アクションでは Ransack を使用しています。Spree のドキュメントによると、Spree はページ サイズをカスタマイズする方法を提供していないため、アクション自体をカスタマイズして、Ransack を使用してページネーションを完全に無効にしようと考えました。Ransack は、結果をページ付けしない方法、または少なくともページ付けを大きくする方法をサポートしていますか?
これは、既存のコントローラー アクションのコードです。
その後に @products の型を入れると ActiveRecord::Relation です。私が入れたとき
@products = product_scope.ransack(params[:q]).result
これも ActiveRecord::Relation ですが、最初のケースでは、rabl テンプレートで使用されるメソッド「total_count」があり、2 番目のケースには存在しません。ransack のソースを調べましたが、.page が定義されている場所が見つかりません。Spree がプルする gem の 1 つで、ActiveRecord::Relation の class_eval に含まれているのではないかと考えています。
どこかで誰かがこの問題に直面し、解決策を考え出さなければなりません。私はその人を見つけることを期待しています:P
jd
sql - すべての条件に一致するランサック
ユーザーの外国語知識をフィルタリングしようとしています。、およびLanguageSkill
に属するモデルを持っています。Member
Language
LanguageLevel
もう 1 つの重要な情報はLanguageLevel
、difficulty
属性 (異なる言語レベルを順序付けることができるように単なる整数)を持っていることです。
メンバーは複数の言語の言語スキルを持っているかもしれませんが、クエリを実行するときは、言語と language_level を関連付けたいと考えています。つまり、言語レベルがどの言語でもなく、問題の言語に関連付けられるようにします。
言語フィールドの一部は次のとおりです。
上記のパーシャルを 2 つ使用すると、次の SQL が生成されます。
SELECT DISTINCT "members".* FROM "members" LEFT OUTER JOIN "language_skills" ON "language_skills"."member_id" = "members"."id" LEFT OUTER JOIN "language_levels" ON "language_levels"."id" = "language_skills"."language_level_id" WHERE ((("language_skills"."language_id" = 38 AND "language_skills"."language_id" = 59) AND ("language_levels"."difficulty" >= 5 AND "language_levels"."difficulty" >= 3)))
ransack に生成させたい SQL が何であるか正確にはわかりませんが、[French, Proficient] と [English, advanced] を入力すると、Proficient でフランス語を話すすべてのメンバーを取得したいと思います。 (またはそれ以上) のレベルと上級 (またはそれ以上) のレベルの英語。
ruby-on-rails - Rails + Ransack-ドロップダウンリストコレクション?
私はその柔軟性のためにransackgemが大好きですが、標準のcollection_selectを正しく機能させることができません。おそらく誰かが助けることができます。
例:
この場合、このコードは経費入力画面からのものであるため、最初のパラメーターは経費オブジェクトです。ランサックの形で何をすべきですか?また、そこに接尾辞を付ける必要があることもわかっています。この例では、project_id_eqを検索パターンにします。
また、私のフォームは「レポート」と呼ばれるコントローラーとビューにあり、この検索をデフォルトのコントローラーに入れていません。
ありがとう!
ruby-on-rails - コントローラでクエリを2回使用するようにパラメータキーを変更する
Ransackを使用してアプリで検索を実行しています。ユーザーがテキストを入力する検索バーがあります。テキストは検索コントローラーに渡され、投稿とグループの2つのテーブルでクエリを検索します。
:name
問題は、グループと:title
投稿に対してそれぞれクエリを実行し、同じページで両方の結果セットを提供したいということです。検索フォームは:name_contを使用しているため、投稿で同じ検索を実行するときに、このフォームがコントローラーに送信するハッシュをコピーし、キーを:title_contに変更しようとしています。
説明を求めることを躊躇しないでください。
検索コントローラー
検索フォーム:
それがもたらすエラー:
更新1:
ruby-on-rails - ランサック検索結果 - to_xls?
ランサック検索フォームがうまく機能しています。結果セットの内容を XLS ファイルに送信するためのエクスポートをユーザーに追加したいと考えています。
to_xls も正常に実装しましたが、ビューに表示されるフィルタリングされた結果ではなく、検索しているオブジェクトの可能な範囲を最大限に返してくれます。
ransack が GET メソッドを使用する方法と関係がありますか? どんな助けでも素晴らしいでしょう。
ありがとう!
ruby-on-rails - 反対の述語 :present をランサックする
Ransack には、次の機能を見つける能力User
がありfirst_name
ます。
反対に、User
nofirst_name
または blankで検索します。
.
不運にも、
User.search(:first_name_present => "0")
等しくない
User.search(:first_name_blank => "1")
.
とにかく作ることはありますか
User.search(:first_name_present => "0")
同等
User.search(:first_name_blank => "1")
、
また
User.search(:first_name_present => "1")
同等
User.search(:first_name_blank => "0")
?
どうも
ruby-on-rails - Ransackで検索-インスタンス変数であるにもかかわらず、レコードがレンダリングされない
Railsアプリケーションのユーザーインデックスページに検索機能を配置しようとしています(Michael HartlのRailsチュートリアルと同様)。Ransackgemを使用して検索を行っています。これは、次のように実装したユーザー名の単純な検索です。
ユーザーコントローラー:
インデックスビュー:
問題はこれです。インデックスページに移動して、実際にそこに表示されているユーザーを検索しても、表示されない場合があります。たとえば、Mrs。Linnie Bahringerは元のリストに表示されますが、「lin」を検索すると検索結果には表示されません。
[ここに写真を表示したかったのですが、さらに5つの評判ポイントが必要なため表示できません。]
当然のことながら、Ransackはどういうわけかクエリを失敗させていると思いました。ただし、@ users変数をページに出力すると、
ビューに、「行方不明」のユーザーが名前のリストにあり、見よ、結果のリストに表示されます!
なぜこれが発生するのか、@ users変数の内容を画面に出力せずに「正しい」結果セットを取得する方法を知っている人はいますか?'='サインを@users.each do
ハックとして行から外そうとしましたが、動作は上記の問題で述べたものに戻ります。
あなたが与えることができるどんな助けにも前もって感謝します!
PS有用な場合に備えて、ビューファイル全体を表示する必要があります。
ruby-on-rails - Ransack Gem - 検索 undefined
Ransack 検索をセットアップしようとしています。Gem ファイルに gem を追加したら、bundle install を実行します。
次に追加しました:
追加したインデックス ビュー ファイルに: (スクリーン名はプロファイル テーブルの有効なフィールドです)
(他のいくつかのスタイルと一緒に)
しかし、私は得ています:
未定義のメソッド「検索」 #
app/controllers/profiles_controller.rb:12:in `index' 内
何か案は?
乾杯 :)