Changeset 291
- Timestamp:
- 12/16/07 20:27:54 (10 months ago)
- Files:
-
- trunk/plugin/acts_as_ferret/lib/class_methods.rb (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/plugin/acts_as_ferret/lib/class_methods.rb
r289 r291 369 369 id_arrays.each do |model, id_array| 370 370 next if id_array.empty? 371 begin372 model = model.constantize371 model_class = begin 372 model.constantize 373 373 rescue 374 374 raise "Please use ':store_class_name => true' if you want to use multi_search.\n#{$!}" 375 375 end 376 376 377 # check for per-model conditions and take these if provided 378 if conditions = find_options[:conditions] 379 key = model.underscore.to_sym 380 conditions = conditions[key] if Hash === conditions 381 end 382 377 383 # merge conditions 378 conditions = combine_conditions([ "#{model .table_name}.#{model.primary_key} in (?)",384 conditions = combine_conditions([ "#{model_class.table_name}.#{model_class.primary_key} in (?)", 379 385 id_array.keys ], 380 find_options[:conditions]) 386 conditions) 387 381 388 382 389 # check for include association that might only exist on some models in case of multi_search … … 385 392 include_options = [ include_options ] unless include_options.respond_to?(:each) 386 393 include_options.each do |include_option| 387 filtered_include_options << include_option if model .reflections.has_key?(include_option.is_a?(Hash) ? include_option.keys[0].to_sym : include_option.to_sym)394 filtered_include_options << include_option if model_class.reflections.has_key?(include_option.is_a?(Hash) ? include_option.keys[0].to_sym : include_option.to_sym) 388 395 end 389 396 end … … 391 398 392 399 # fetch 393 tmp_result = model .find(:all, find_options.merge(:conditions => conditions,394 :include=> filtered_include_options))400 tmp_result = model_class.find(:all, find_options.merge(:conditions => conditions, 401 :include => filtered_include_options)) 395 402 396 403 # set scores and rank
