i am getting the following error message using the AAF gem version
0.4.4 in my rails app.
undefined method `ferret_rank=’ for #Page:0x246060c
i"m using multi search but i have the same code working on another
app, using the plugin. To me this method looks like it’s missing from
the gem version, but is that possible?
I have an index compiled, but this error appears whenever i search for
something in the index. when i search for terms not in the index, it
works as expected,… nothing is returned.
More trace stack:
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/
attribute_methods.rb:255:in method_missing' /Library/Ruby/Gems/1.8/gems/acts_as_ferret-0.4.4/lib/acts_as_ferret.rb: 474:in
retrieve_records’
/Library/Ruby/Gems/1.8/gems/acts_as_ferret-0.4.4/lib/acts_as_ferret.rb:
473:in each' /Library/Ruby/Gems/1.8/gems/acts_as_ferret-0.4.4/lib/acts_as_ferret.rb: 473:in
retrieve_records’
/Library/Ruby/Gems/1.8/gems/acts_as_ferret-0.4.4/lib/acts_as_ferret.rb:
452:in each' /Library/Ruby/Gems/1.8/gems/acts_as_ferret-0.4.4/lib/acts_as_ferret.rb: 452:in
retrieve_records’
/Library/Ruby/Gems/1.8/gems/acts_as_ferret-0.4.4/lib/
ferret_find_methods.rb:43:in ar_find' /Library/Ruby/Gems/1.8/gems/acts_as_ferret-0.4.4/lib/ ferret_find_methods.rb:12:in
find_records’
/Library/Ruby/Gems/1.8/gems/acts_as_ferret-0.4.4/lib/acts_as_ferret.rb:
343:in `find’
Thoughts???
i am not using multi search, i meant to write i am using a shared
index, but it only had ONE model in it for now. although that still
doesn’t seem to make a difference.
sorry for the confusion.
Did you manage to solve this issue. I have exactly the same error using
the shared index in config/aaf.rb
In the console I rebuilt the indexes for the relevant 3 models I am
using.
I do an example search in the console:
results = ActsAsFerret.find(“pete*”, ‘shared’)
I get results back perfectly.
When I do it in the application I get
undefined method ferret_rank=' for <2nd model in my list> /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/attribute_methods.rb:255:in
method_missing’
/usr/local/lib/ruby/gems/1.8/gems/acts_as_ferret-0.4.4/lib/acts_as_ferret.rb:474:in
retrieve_records' /usr/local/lib/ruby/gems/1.8/gems/acts_as_ferret-0.4.4/lib/acts_as_ferret.rb:473:in
each’
/usr/local/lib/ruby/gems/1.8/gems/acts_as_ferret-0.4.4/lib/acts_as_ferret.rb:473:in
retrieve_records' /usr/local/lib/ruby/gems/1.8/gems/acts_as_ferret-0.4.4/lib/acts_as_ferret.rb:452:in
each’
/usr/local/lib/ruby/gems/1.8/gems/acts_as_ferret-0.4.4/lib/acts_as_ferret.rb:452:in
retrieve_records' /usr/local/lib/ruby/gems/1.8/gems/acts_as_ferret-0.4.4/lib/ferret_find_methods.rb:43:in
ar_find’
/usr/local/lib/ruby/gems/1.8/gems/acts_as_ferret-0.4.4/lib/ferret_find_methods.rb:12:in
find_records' /usr/local/lib/ruby/gems/1.8/gems/acts_as_ferret-0.4.4/lib/acts_as_ferret.rb:343:in
find’
Can anyone help I am banging my head against a wall
Thanks in advance.
I spoke to Jens who was on vacation - thanks a lot mate, really
appreciate your help. It appears that this happens when the model is not
extended properly.
Solutions:
– Use the plugin rather than the gem. This fixed it for more straight
away.
– require config/aaf.rb in your environment.rb
Hope this helps some one.
# Copyright (c) 2006 Kasper Weibel Nielsen-Refs, Thomas Lockney, Jens Krämer
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
This file has been truncated. show original
472 # set scores and rank
473 tmp_result.each do |record|
474 record.ferret_rank, record.ferret_score =
id_array[record.id.to_s]
475 end
is where it breaks.