# Undefined method \`ferret\_rank='

**URL:** <https://www.ruby-forum.com/t/undefined-method-ferret-rank/169462>\
**Category:** Ferret\
**Created:** [June 4, 2009, 12:38am UTC](https://www.ruby-forum.com/t/undefined-method-ferret-rank/169462 "2009-06-04T00:38:33Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Philip\_Ingram](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/58f4c7/32.png) [@Philip\_Ingram](https://www.ruby-forum.com/u/Philip_Ingram)\
**Post date:** [June 4, 2009, 12:38am UTC](https://www.ruby-forum.com/t/undefined-method-ferret-rank/169462/1 "2009-06-04T00:38:33Z")

</div>

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???

---

<div class="post-metadata">

**Author:** ![Philip\_Ingram](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/58f4c7/32.png) [@Philip\_Ingram](https://www.ruby-forum.com/u/Philip_Ingram)\
**Post date:** [June 4, 2009, 12:58am UTC](https://www.ruby-forum.com/t/undefined-method-ferret-rank/169462/2 "2009-06-04T00:58:27Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Philip\_Ingram](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/58f4c7/32.png) [@Philip\_Ingram](https://www.ruby-forum.com/u/Philip_Ingram)\
**Post date:** [November 30, 2009, 4:35am UTC](https://www.ruby-forum.com/t/undefined-method-ferret-rank/169462/3 "2009-11-30T04:35:22Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Philip\_Ingram](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/58f4c7/32.png) [@Philip\_Ingram](https://www.ruby-forum.com/u/Philip_Ingram)\
**Post date:** [December 3, 2009, 1:58am UTC](https://www.ruby-forum.com/t/undefined-method-ferret-rank/169462/4 "2009-12-03T01:58:31Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Philip\_Ingram](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/58f4c7/32.png) [@Philip\_Ingram](https://www.ruby-forum.com/u/Philip_Ingram)\
**Post date:** [November 30, 2009, 6:47am UTC](https://www.ruby-forum.com/t/undefined-method-ferret-rank/169462/5 "2009-11-30T06:47:07Z")

</div>

> <https://github.com/jkraemer/acts_as_ferret/blob/master/lib/acts_as_ferret.rb>

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.
