6
Rings 3.2.9で思考型スフィンクス2.0.13を使用しています。STI使用時に思考型スフィンクススコープで「未定義メソッド」を取得する
class User < ActiveRecord::Base
define_index do
has :account_id
has :is_deleted
end
sphinx_scope(:by_account) do |account_id|
{:with => {:account_id => account_id}}
end
sphinx_scope(:without_deleted) do
{:with => {:is_deleted => false}}
end
end
class Admin < User
end
私は、ユーザーまたは管理クラスのいずれかに単一のスコープを使用しようとすると、すべての罰金です:
は、私が持っているとこのようになりSTIクラスを考えます。また、Userモデルを使用してスコープを連鎖させることもできます。
> Admin.by_account(1).without_deleted
NoMethodError: Sphinx Query (2.9ms)
Sphinx Found 3 results
Admin Load (0.6ms) SELECT `users`.* FROM `users` WHERE `users`.`type` IN ('Admin') AND `users`.`id` IN (7, 8, 9)
undefined method `without_deleted' for #<ThinkingSphinx::Search:0x007fd3d95f7a08>
それは、すぐに最初のスコープが検出されたとして、クエリを実行していることが表示されます。問題は、私は管理モデルのスコープをチェーンした場合、私が得る、です。私は行方不明の何かが明らかか、これはTSの問題のように見えますか?
ユーザークラスには、is_deletedという名前のdbフィールドがありますか?ブール型で? – Lichtamberg
@Lichtamberg - ええ、列はそこにあり、ブール値です。どちらのスコープも自分自身でうまく動作します。 – Codebeef
Admin.by_account(1)をコンソールに挿入すると応答を表示できますか? – Lichtamberg