Raymond O''connor
2006-Nov-28 19:14 UTC
[Ferret-talk] Update/Create record only if field is true
I have a sellable flag in my database. I''m trying to have ferret only add/update records where sellable == true. What is the best way to do this? I''ve tried editing instance_methods.rb in the AAF, but I still can''t get it to work. Thanks for the help -- Posted via ruby-forum.com.
Raymond O''connor
2006-Nov-28 19:44 UTC
[Ferret-talk] Update/Create record only if field is true
I think I figured it out. I edited the following: instance_methods.rb#ferret_create line 85 I changed to: self.class.ferret_index << self.to_doc if !configure[:ignore_flag] or self.send(configure[:ignore_flag]) == true class_methods.rb#rebuild_index I made the same change to line 199: index << rec.to_doc if !configure[:ignore_flag] or self.send(configure[:ignore_flag]) == true Jens do you think you could add this functionality to AAF in a future update? It would be much appreciated! Thanks again so much for the great plugin. Cheers! -Ray -- Posted via ruby-forum.com.
Raymond O''connor
2006-Nov-28 19:50 UTC
[Ferret-talk] Update/Create record only if field is true
Raymond O''connor wrote:> I think I figured it out. I edited the following: > > instance_methods.rb#ferret_create > line 85 I changed to: > self.class.ferret_index << self.to_doc if !configure[:ignore_flag] or > self.send(configure[:ignore_flag]) == true > > class_methods.rb#rebuild_index > I made the same change to line 199: > index << rec.to_doc if !configure[:ignore_flag] or > self.send(configure[:ignore_flag]) == true > > Jens do you think you could add this functionality to AAF in a future > update? It would be much appreciated! Thanks again so much for the > great plugin. > > Cheers! > -RayWhoops, I made a typo above. Configure should be configuration so the changes should actually read instance_methods.rb#ferret_create line 85 I changed to: self.class.ferret_index << self.to_doc if !configuration[:ignore_flag] or self.send(configuration[:ignore_flag]) == true class_methods.rb#rebuild_index I made the same change to line 199: index << rec.to_doc if !configuration[:ignore_flag] or self.send(configuration[:ignore_flag]) == true -- Posted via ruby-forum.com.
Carlos Kozuszko
2006-Nov-29 00:55 UTC
[Ferret-talk] Update/Create record only if field is true
I want to do the same in my app. Is there a way to do this without hacking the plugin code? -- Posted via ruby-forum.com.
Jens Kraemer
2006-Nov-29 13:03 UTC
[Ferret-talk] Update/Create record only if field is true
On Wed, Nov 29, 2006 at 01:55:12AM +0100, Carlos Kozuszko wrote:> I want to do the same in my app. Is there a way to do this without > hacking the plugin code?not a nice one, but using the disable_ferret method you could build a custom save method that disables ferret for the next save if some condition is met, and then saves the record: def conditional_ferret_save disable_ferret if do_not_index? save end note that the disable_ferret method disables indexing for this record for the next call to save - this is definitely not thread safe, but in a Rails context this usually is not a problem. However I like the idea of having an :if option to acts_as_ferret to specify a condition (symbol pointing to a method, or a proc) telling whether indexing should take place or not. Jens -- webit! Gesellschaft f?r neue Medien mbH webit.de Dipl.-Wirtschaftsingenieur Jens Kr?mer kraemer at webit.de Schnorrstra?e 76 Tel +49 351 46766 0 D-01069 Dresden Fax +49 351 46766 66