The issue is very likely this line:

  indexes regexp_matches(callid,'\^\[0-9\]\*'), :as => :phone

Index definitions are translated to SQL statements, so you're not able to call 
methods - especially not methods expected to occur within the scope of each 
instance.

You could translate this line to use a SQL snippet instead, or perhaps the 
regex translation isn't even required?

On 24/05/2013, at 6:19 PM, Дмитрий Карбышев wrote:

> Hi, i'm trying to set up indexing in my rails app and get unexpected message, 
> help me please.
> rake ts:configure  --trace
> ** Invoke ts:configure (first_time)
> ** Invoke environment (first_time)
> ** Execute environment
> ** Execute ts:configure
> Generating configuration to /home/test/krabe/config/development.sphinx.conf
> rake aborted!
> undefined method `active_record' for nil:NilClass
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/associations.rb:80:in
>  `reflection_for'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/associations.rb:50:in
>  `join_for'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/associations.rb:65:in
>  `joins_for'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/associations.rb:18:in
>  `aggregate_for?'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/property_sql_presenter.rb:22:in
>  `block in aggregate?'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/property_sql_presenter.rb:21:in
>  `each'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/property_sql_presenter.rb:21:in
>  `any?'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/property_sql_presenter.rb:21:in
>  `aggregate?'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/property_sql_presenter.rb:34:in
>  `casted_column_with_table'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/property_sql_presenter.rb:15:in
>  `to_select'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/sql_builder.rb:127:in
>  `collect'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/sql_builder.rb:127:in
>  `select_clause'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/sql_builder.rb:10:in
>  `sql_query'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/sql_source.rb:120:in
>  `prepare_for_render'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/sql_source.rb:62:in
>  `render'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/riddle-1.5.6/lib/riddle/configuration/index.rb:29:in
>  `block in render'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/riddle-1.5.6/lib/riddle/configuration/index.rb:29:in
>  `collect'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/riddle-1.5.6/lib/riddle/configuration/index.rb:29:in
>  `render'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/core/index.rb:53:in
>  `render'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/riddle-1.5.6/lib/riddle/configuration.rb:39:in
>  `block in render'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/riddle-1.5.6/lib/riddle/configuration.rb:39:in
>  `collect'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/riddle-1.5.6/lib/riddle/configuration.rb:39:in
>  `render'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/configuration.rb:78:in
>  `render'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/configuration.rb:84:in
>  `block in render_to_file'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/configuration.rb:84:in
>  `open'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/configuration.rb:84:in
>  `render_to_file'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/rake_interface.rb:4:in
>  `configure'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/tasks.rb:4:in
>  `block (2 levels) in <top (required)>'
> /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/task.rb:246:in
>  `call'
> /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/task.rb:246:in
>  `block in execute'
> /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/task.rb:241:in
>  `each'
> /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/task.rb:241:in
>  `execute'
> /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/task.rb:184:in
>  `block in invoke_with_call_chain'
> /home/test/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/monitor.rb:211:in 
> `mon_synchronize'
> /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/task.rb:177:in
>  `invoke_with_call_chain'
> /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/task.rb:170:in
>  `invoke'
> /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/application.rb:143:in
>  `invoke_task'
> /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/application.rb:101:in
>  `block (2 levels) in top_level'
> /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/application.rb:101:in
>  `each'
> /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/application.rb:101:in
>  `block in top_level'
> /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/application.rb:110:in
>  `run_with_threads'
> /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/application.rb:95:in
>  `top_level'
> /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/application.rb:73:in
>  `block in run'
> /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/application.rb:160:in
>  `standard_exception_handling'
> /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/application.rb:70:in
>  `run'
> /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/bin/rake:33:in 
> `<top (required)>'
> /home/test/.rvm/gems/ruby-2.0.0-p0@global/bin/rake:19:in `load'
> /home/test/.rvm/gems/ruby-2.0.0-p0@global/bin/rake:19:in `<main>'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/bin/ruby_noexec_wrapper:14:in `eval'
> /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/bin/ruby_noexec_wrapper:14:in 
> `<main>'
> Tasks: TOP => ts:configure
> 
> thinking-sphinx=3.0.3
> sphinx = 2.0.8
> 
> I have a simple model app/models/ivr_log.rb
> class IvrLog < ActiveRecord::Base
> 
>   attr_reader :callid, :event_name, :log_level, :message, :registered_at
> 
>   def readonly?
>     return true
>   end
> 
>   def before_destroy
>     raise ActiveRecord::ReadOnlyRecord
>   end
> 
> end
> 
> and app/indices/ivr_log_index.rb:
> ThinkingSphinx::Index.define :ivr_log, :with => :active_record do
>   indexes :portal
>   indexes :event_name
>   indexes :log_level
>   indexes :message
>   indexes regexp_matches(callid,'\^\[0-9\]\*'), :as => :phone
>   group_by "phone"
> 
>   has :id, :registered_at, :callid
> end
> 
> I lso have table named ivr_logs in my database
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Thinking Sphinx" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/thinking-sphinx?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  


-- 
You received this message because you are subscribed to the Google Groups 
"Thinking Sphinx" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/thinking-sphinx?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to