Try the following:
has mindmaps.id, :as => :map_id
I'm not sure if that is right for your schema, but you'll need the
foreign key for the join as an attribute, so Sphinx can limit searches
appropriately.
--
Pat
On 03/09/2009, at 12:16 PM, miccet wrote:
>
> Hello there,
> I have a problem when searching on an objects filtered objects using
> thinking_sphinx. I get the following error message: "RuntimeError
> (Missing Attribute for Foreign Key map_id)" when using the following
> method:
>
> @map = Map.find(:first, :conditions => {:id => params[:map_id]})
> @entries = @map.entries.search live_search_string
>
> The relevant info in the models I have are the following:
>
> class Map < ActiveRecord::Base
> has_many :entries, :through=>:mappings
> end
>
> class Entry < ActiveRecord::Base
> has_many :mindmaps, :through=>:mappings
> end
>
> My index is defined in the Entry class like so:
>
> define_index do
> indexes title
> indexes content
>
> has user_id
> end
>
> So I have tried to add this field like the user_id but with no result.
> Something tells me I have to do something fancy to have the model
> understand this many-to-many relation? I even tried specifying a
> custom search method like someone on stackoverflow mentioned, but it
> just found all entries and did not filter on the current map I'm
> searching on. Any ideas?
>
> >
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Thinking Sphinx" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/thinking-sphinx?hl=en
-~----------~----~----~----~------~----~------~--~---