searchlogic icon indicating copy to clipboard operation
searchlogic copied to clipboard

Searchlogic::NamedScopes::OrConditions::UnknownConditionError raised when calling class method with "_or_" in its name on search object

Open jana4u opened this issue 15 years ago • 0 comments

Everything runs great when you change name of affected method to different name not including 'or'


How to get this error:

  1. create empty rails app (rails 2.3.5)

  2. add this line to config/environment.rb

    config.gem "searchlogic", :version => '~> 2.4.19'
    
  3. generate model

    ruby script/generate model car
    
  4. run

    rake db:migrate
    
  5. edit generated model - add class method including "or" in its name

    class Car < ActiveRecord::Base
        def self.abc_or_def
            all
        end
    end
    
  6. run rails console and try

    search = Car.search
    search.abc_or_def
    

my results:

Loading development environment (Rails 2.3.5)
>> search = Car.search
=> #<Searchlogic::Search:0x49e24ac @conditions={}, @klass=Car(id: integer, created_at: datetime, updated_at: datetime),
@current_scope=nil>
>> search.abc_or_def
Searchlogic::NamedScopes::OrConditions::UnknownConditionError: The condition 'def' is not a valid condition, we could not find any scopes that match this.
        from c:/ruby/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/named_scopes/or_conditions.rb:96:in `interpolate_or_conditions'
        from c:/ruby/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/named_scopes/or_conditions.rb:75:in `each'
        from c:/ruby/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/named_scopes/or_conditions.rb:75:in `interpolate_or_conditions'
        from c:/ruby/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/named_scopes/or_conditions.rb:36:in `or_conditions'
        from c:/ruby/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/named_scopes/or_conditions.rb:19:in `or_condition?'
        from c:/ruby/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/named_scopes/or_conditions.rb:10:in `condition?'
        from c:/ruby/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/search.rb:196:in `scope?'
        from c:/ruby/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/search.rb:127:in `method_missing'
        from (irb):2
>>

jana4u avatar Apr 18 '10 17:04 jana4u