1

現在、ユーザー データベースに検索フォームを実装しています。id 、ログイン、またはメールで検索したいと思います。

当然、スコープを組み合わせてフォームを簡素化するのが最善のアプローチだと思います。だから私は の text_field を追加しました:id_or_login_or_email_like

テキストフィールドに数値を入力すると、すべて正常に機能します。

ただし、単語を入力して検索を押すと、入力した値が失われて 0 (ゼロ) に置き換えられ、検索結果では、ID、名前、またはログインに 0 が含まれるすべてのユーザーが返されます。

これを修正する方法についてのアイデアはありますか? Rails 2.3.2 と SearchLogic 2.4.27 を使用しています。ありがとう!

4

2 に答える 2

1

これは、id と比較するときにスコープが整数と比較しているためだと思います。これにより、文字列が 0 に変換されます。.dup を使用して、スコープに渡された属性が変更されていないことを確認してください。

于 2011-02-01T04:15:34.443 に答える
1

気にしないでください。回避策を見つけました。スコープを OR で組み合わせる場合は、整数値に関連するスコープを最後に置きます。

:id_or_login_or_email_likeしたがって、使用する代わりにlogin_or_email_or_id_like. この問題はgithub経由で送信しました。

于 2011-02-01T15:52:09.460 に答える