Hello, I am trying to use the multi_search method, but I keep getting
type error on nil objects, I send it [Model1,Model2] and it seems as
though the class names keep getting clobbered and turn to nil, somewhere
along the multi_index area. I tried to trace what was going on, but I
got nothing, also, this only happens when there are actually hits(thank
god, most of the time). Perhaps some insight? Thank you!
Jens K. wrote:
Hi!
On Mon, Oct 09, 2006 at 10:35:00AM +0200, wc wrote:
Hello, I am trying to use the multi_search method, but I keep getting
type error on nil objects, I send it [Model1,Model2] and it seems as
though the class names keep getting clobbered and turn to nil, somewhere
along the multi_index area. I tried to trace what was going on, but I
got nothing, also, this only happens when there are actually hits(thank
god, most of the time). Perhaps some insight? Thank you!a stack trace and / or some code would help in tracking this down…
Jens
–
webit! Gesellschaft f�r neue Medien mbH www.webit.de
Dipl.-Wirtschaftsingenieur Jens Kr�mer [email protected]
Schnorrstra�e 76 Tel +49 351 46766 0
D-01069 Dresden Fax +49 351 46766 66
Here is the trace
User.multi_search(“foo”,[Model1,Model2])
TypeError: nil is not a symbol
from
./script/…/config/…/config/…/vendor/plugins/acts_as_ferret/lib/class_methods.rb:412:in
const_get' from ./script/../config/../config/../vendor/plugins/acts_as_ferret/lib/class_methods.rb:412:in
multi_search’
from
./script/…/config/…/config/…/vendor/plugins/acts_as_ferret/lib/class_methods.rb:431:in
id_multi_search' from ./script/../config/../config/../vendor/plugins/acts_as_ferret/lib/multi_index.rb:27:in
search_each’
from
./script/…/config/…/config/…/vendor/plugins/acts_as_ferret/lib/class_methods.rb:428:in
id_multi_search' from ./script/../config/../config/../vendor/plugins/acts_as_ferret/lib/class_methods.rb:411:in
multi_search’
from (irb):1
both my models call:
acts_as_ferret :store_class_name => true
and that is basically it, find_by_contents works great, just not
multi_search
Hope this helps
~wil
On Mon, Oct 09, 2006 at 11:31:47PM +0200, wc wrote:
[…]
Here is the trace
User.multi_search(“foo”,[Model1,Model2])
TypeError: nil is not a symbol
from
./script/…/config/…/config/…/vendor/plugins/acts_as_ferret/lib/class_methods.rb:412:in
`const_get’
it seems your indexes don’t contain the class_name field for all your
indexed objects.
both my models call:
acts_as_ferret :store_class_name => true
you should have all three models (User, Model1 and Model2) using the
:store_class_name option.
Then, after rebuilding your indexes, multi_search should work fine.
Jens
–
webit! Gesellschaft für neue Medien mbH www.webit.de
Dipl.-Wirtschaftsingenieur Jens Krämer [email protected]
Schnorrstraße 76 Tel +49 351 46766 0
D-01069 Dresden Fax +49 351 46766 66
Jens K. wrote:
On Mon, Oct 09, 2006 at 11:31:47PM +0200, wc wrote:
[…]Here is the trace
User.multi_search(“foo”,[Model1,Model2])
TypeError: nil is not a symbol
from
./script/…/config/…/config/…/vendor/plugins/acts_as_ferret/lib/class_methods.rb:412:in
`const_get’it seems your indexes don’t contain the class_name field for all your
indexed objects.both my models call:
acts_as_ferret :store_class_name => true
you should have all three models (User, Model1 and Model2) using the
:store_class_name option.Then, after rebuilding your indexes, multi_search should work fine.
Jens
–
webit! Gesellschaft f�r neue Medien mbH www.webit.de
Dipl.-Wirtschaftsingenieur Jens Kr�mer [email protected]
Schnorrstra�e 76 Tel +49 351 46766 0
D-01069 Dresden Fax +49 351 46766 66
I have :store_class_name => true in all the models, and I search using
model1.multi_search(“foo”,[Model1,Model2]) it works so long as there are
no matches, but if there are matches I get the same error I previously
posted about the nil object. I checked my indexes and they are create as
well, for all the models I need to search
wc wrote:
Jens K. wrote:
On Mon, Oct 09, 2006 at 11:31:47PM +0200, wc wrote:
[…]Here is the trace
User.multi_search(“foo”,[Model1,Model2])
TypeError: nil is not a symbol
from
./script/…/config/…/config/…/vendor/plugins/acts_as_ferret/lib/class_methods.rb:412:in
`const_get’it seems your indexes don’t contain the class_name field for all your
indexed objects.both my models call:
acts_as_ferret :store_class_name => true
you should have all three models (User, Model1 and Model2) using the
:store_class_name option.Then, after rebuilding your indexes, multi_search should work fine.
Jens
–
webit! Gesellschaft f�r neue Medien mbH www.webit.de
Dipl.-Wirtschaftsingenieur Jens Kr�mer [email protected]
Schnorrstra�e 76 Tel +49 351 46766 0
D-01069 Dresden Fax +49 351 46766 66I have :store_class_name => true in all the models, and I search using
model1.multi_search(“foo”,[Model1,Model2]) it works so long as there are
no matches, but if there are matches I get the same error I previously
posted about the nil object. I checked my indexes and they are create as
well, for all the models I need to search
I also just upgraded to Ferret 0.10.11 and I am using acts_as_ferret
latest stable
thanks
~wil
So it seems as though :model => doc[:class_name] line 428 of
class_methods.rb isn’t doing what it’s supposed to, I checked the
indexes and there is in fact a class_name field being created from the
acts_as_ferret :store_class_name => true, I just dont know why it isn’t
being used and turns to nil in this case, again only if there is a hit
is it nil
Hi!
On Mon, Oct 09, 2006 at 10:35:00AM +0200, wc wrote:
Hello, I am trying to use the multi_search method, but I keep getting
type error on nil objects, I send it [Model1,Model2] and it seems as
though the class names keep getting clobbered and turn to nil, somewhere
along the multi_index area. I tried to trace what was going on, but I
got nothing, also, this only happens when there are actually hits(thank
god, most of the time). Perhaps some insight? Thank you!
a stack trace and / or some code would help in tracking this down…
Jens
–
webit! Gesellschaft für neue Medien mbH www.webit.de
Dipl.-Wirtschaftsingenieur Jens Krämer [email protected]
Schnorrstraße 76 Tel +49 351 46766 0
D-01069 Dresden Fax +49 351 46766 66
wc wrote:
So it seems as though :model => doc[:class_name] line 428 of
class_methods.rb isn’t doing what it’s supposed to, I checked the
indexes and there is in fact a class_name field being created from the
acts_as_ferret :store_class_name => true, I just dont know why it isn’t
being used and turns to nil in this case, again only if there is a hit
is it nil
I’m starting to think it might have something to do with one of my
models being a HABTM relationship setup