質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

1回答

1787閲覧

ransack検索にてand検索が取れない

KOO_

総合スコア58

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/01/09 05:54

現在ransackにて検索条件を指定しています。

その検索条件は以下のように設定しており、

ransack

1<%= search_form_for @q do |f| %> 2<%= f.search_field :mail_cont, type: "text" %> 3<%= f.collection_select :old_statu_in, Customer.Old_status, :first, :second, {include_blank: '選択してください'}, multiple: true %>

となっております。

ここで課題となっているのが、:old_statu_inは複数検索指定を行いたいので_inにて記述しておりますが、_contと相互性がないのか、両方を検索にかけると検索条件が何も引っかからなくなり困っております。

解決方法があればご教示頂けますでしょうか?

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/01/09 06:24

「検索条件が何も引っかからなくなり」というのは、「条件が全く効かなくなって全件検索される」のか「何1つヒットしなくなる」のか、どちらでしょうか。 あと、モデル構造も示していただけると助かります。
KOO_

2020/01/09 06:39

「検索条件が何も引っかからなくなり」が正しくなります! model構造は以下でよろしいでしょうか? @@old_status = [ ["",""], [0,"不在"], [1,"担当者不在"], [2,"見込"], [3,"折返待"], ["app","APP"], ["ng_now","今は結構"], ["ng_foreign","外国人NG"], ["ng_front","フロントNG"] ] def self.Old_status @@old_status end
maisumakun

2020/01/09 06:42

> 「検索条件が何も引っかからなくなり」が正しくなります! 検索結果は0件ですか、全件ですか?(結局もとの文言のままなので、新しい情報がありませんでした)
KOO_

2020/01/09 06:45

すみません!0件です! => Ransack::Search<class: Customer, base: Grouping <conditions: [Condition <attributes: ["mail"], predicate: cont, values: ["@"]>, Condition <attributes: ["old_statu"], predicate: in, values: ["", "0"]>], combinator: and>> このようになっております!
guest

回答1

0

mail に "@" がありかつ old_statu が "" または "0" なものが実際に存在しないのでは?
Customer.pluck(:mail,:old_statu)
の結果を確認してみてください。

あと、logを見ると発行されたSQLが表示されていると思うので、その内容が期待通りか見てみることもお薦めします。

投稿2020/01/09 21:39

winterboum

総合スコア23347

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問