Same error message!

But I can't see what's wrong in my associations:

class Course < ActiveRecord::Base
  ...
  has_many  :courseattributings,  :dependent => :destroy
  has_many  :career_levels,       :through => :courseattributings
  ...
end

class Courseattributing < ActiveRecord::Base
  belongs_to :course
  belongs_to :career_level, :foreign_key  => :attribute_id,
                                       :conditions   =>
["attribute_type = ?", 'career_level']
end

class CareerLevel < ActiveRecord::Base
  has_many :courseattributings, :foreign_key => :attribute_id
  has_many :courses, :through => :courseattributings
end


Any idea?




On Jan 20, 4:14 pm, Pat Allan <[email protected]> wrote:
> Hi Alex
>
> What happens if you do a standard #find call and include career levels?
>
>   Course.find(:all, :include => :career_levels)
>
> --
> Pat
>
> On 21/01/2011, at 11:10 AM, alex wrote:
>
>
>
>
>
>
>
> > Hi,
>
> > I am happily using sphinx for searching but just ran into a small
> > problem:
>
> > My main model is defined as follow:
>
> > class Course
> >  has_many  :tracks, :dependent => :destroy,
> >                               :order => "tracks.from_date"
> >  has_many  :courseattributings, :dependent => :destroy
> >  has_many  :career_levels,       :through => :courseattributings
> >  has_many  :coursetopicings, :dependent => :destroy
> >  has_many  :topics,               :through => :coursetopicings
>
> >  ...
>
> >  define_index do
> >    indexes     :name,
> >                    :sortable   => :true
> >    indexes     objectives
> >    has           topics(:id),  :as         => :topic_ids,
> >                                     :facet      => true
> >    has           career_levels(:id),         :as
> > => :career_level_ids
>
> >    has       tracks(:from_date),         :as
> > => :track_from_dates,
> >                                                    :type
> > => :datetime
> >    has       tracks(:to_date),            :as
> > => :track_to_dates,
> >                                                    :type
> > => :datetime
> >    ...
> >  end
>
> > end
>
> > When I do:
>
> >    @courses = Course.search(
> >      keywords,
> >      :with       => with_params,
> >      :sort_mode  => sort_params[:sort_mode],
> >      :order      => sort_params[:order],
> >      :per_page   => 10,
> >      :page => (params[:page] || 1),
> >      :include => [:topics, :career_levels, :tracks]
> >    )
>
> > I get the following error message:
>
> > ActiveRecord::StatementInvalid (Mysql::Error: Unknown column
> > 'attribute_type' in 'where clause': SELECT * FROM `career_levels`
> > WHERE (`career_levels`.`id` IN (6,4,5) AND (attribute_type =
> > 'career_level')) ):
> >  /Library/Ruby/Gems/1.8/gems/thinking-sphinx-1.3.11/lib/
> > thinking_sphinx/search.rb:637:in `instances_from_class'
> >  /Library/Ruby/Gems/1.8/gems/thinking-sphinx-1.3.11/lib/
> > thinking_sphinx/search.rb:690:in `single_class_results'
>
> > If I remove "career_levels" from the "include" statement, everything
> > works fine. What am I missing?
>
> > Thanks for your help!
>
> > --
> > 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 
> > athttp://groups.google.com/group/thinking-sphinx?hl=en.

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

Reply via email to