okay, i have different types of media (tv, movies, web videos). my
media model is self-referencing to handle the case of tv series and
episodes; series_id is null except for specific tv episodes, which
reference the associated series (see below). Here's what I'd like to
do:
If a search matches anything except a tv episode or series, simply
return associated media. In the case of tv or episodes, I'd like to
group them together. so i figured i'd create "derived" attribute,
named parent_media, which was the series_id if series_id wasn't null
and was the id when series_id was null. then i could group_by that
attribute. below is what i tried...
class Media < ActiveRecord::Base
has_many :episodes, :class_name => 'Media', :foreign_key =>
'series_id'
belongs_to :series, :class_name => 'Media', :foreign_key =>
'series_id'
define_index do
indexes title
indexes description
has duration
has series_id
has 'IF(series_id, series_id, id)', :type => :integer, :as
=> :parent_media
end
Media.search 'query here', :group_by => :parent_media
and got
NoMethodError: undefined method `bytesize' for :parent_media:Symbol
from /Library/Ruby/Gems/1.8/gems/riddle-1.1.0/lib/riddle/client/
message.rb:21:in `send'
from /Library/Ruby/Gems/1.8/gems/riddle-1.1.0/lib/riddle/client/
message.rb:21:in `append_string'
from /Library/Ruby/Gems/1.8/gems/riddle-1.1.0/lib/riddle/client.rb:
641:in `query_message'
from /Library/Ruby/Gems/1.8/gems/riddle-1.1.0/lib/riddle/client.rb:
315:in `query'
from /Library/Ruby/Gems/1.8/gems/thinking-sphinx-2.0.0.rc2/lib/
thinking_sphinx/search.rb:326:in `populate'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/
ruby/1.8/benchmark.rb:308:in `realtime'
from /Library/Ruby/Gems/1.8/gems/thinking-sphinx-2.0.0.rc2/lib/
thinking_sphinx/search.rb:325:in `populate'
from /Library/Ruby/Gems/1.8/gems/thinking-sphinx-2.0.0.rc2/lib/
thinking_sphinx/search.rb:441:in `call'
from /Library/Ruby/Gems/1.8/gems/thinking-sphinx-2.0.0.rc2/lib/
thinking_sphinx/search.rb:441:in `retry_on_stale_index'
from /Library/Ruby/Gems/1.8/gems/thinking-sphinx-2.0.0.rc2/lib/
thinking_sphinx/search.rb:322:in `populate'
from /Library/Ruby/Gems/1.8/gems/thinking-sphinx-2.0.0.rc2/lib/
thinking_sphinx/search.rb:135:in `method_missing'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/
ruby/1.8/irb.rb:302:in `output_value'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/
ruby/1.8/irb.rb:151:in `eval_input'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/
ruby/1.8/irb.rb:263:in `signal_status'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/
ruby/1.8/irb.rb:147:in `eval_input'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/
ruby/1.8/irb.rb:146:in `eval_input'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/
ruby/1.8/irb.rb:70:in `start'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/
ruby/1.8/irb.rb:69:in `catch'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/
ruby/1.8/irb.rb:69:in `start'
from /Library/Ruby/Gems/1.8/gems/railties-3.0.0/lib/rails/commands/
console.rb:44:in `start'
from /Library/Ruby/Gems/1.8/gems/railties-3.0.0/lib/rails/commands/
console.rb:8:in `start'
from /Library/Ruby/Gems/1.8/gems/railties-3.0.0/lib/rails/commands.rb:
23
from script/rails:6:in `require'
I'm fairly certain I'm using group_by wrong. Any suggestions?
--
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.