Hi Pat,
Sorry for not being clear. Was pulling my hair doing it.
Migration file
==================
class AddDeltaToSpotsAndTripsAndTripDay < ActiveRecord::Migration
def self.up
add_column :spots, :delta, :boolean, :default => true, :null =>
false
add_column :trips, :delta, :boolean, :default => true, :null =>
false
add_column :trip_days, :delta, :boolean, :default => true, :null
=> false
end
def self.down
remove_column :spots, :delta
remove_column :trips, :delta
remove_column :trip_days, :delta
end
end
spot.rb
==============
class Spot < ActiveRecord::Base
has_many :trips, :through => :spot_trips
after_save :set_trip_day_delta_flag
# ThinkingSphinx Index
define_index do
indexes :name, :sortable => true
indexes address
indexes city
indexes state
indexes country
indexes spot_type
indexes season
indexes description
has rating_average
set_property :delta => true
end
private
def set_trip_day_delta_flag
trip_day.delta = true
trip_day.save
end
end
trip.rb
==============
class Trip < ActiveRecord::Base
has_many :spots, :through => :spot_trips
has_many :trip_days, :dependent => :destroy
after_save :set_trip_day_delta_flag
# ThinkingSphinx Index
define_index do
indexes name
indexes duration
#indexes spots.name, :as => :trip_spot_name
#indexes spots.city, :as => :trip_spot_city
#indexes spots.state, :as => :trip_spot_state
#indexes spots.country, :as => :trip_spot_country
has budget, created_at, rating_average
set_property :delta => true
end
private
def set_trip_day_delta_flag
trip_day.delta = true
trip_day.save
end
end
trip_day.rb
===========
class TripDay < ActiveRecord::Base
belongs_to :trip
has_many :spots, :through => :trip_day_spots
# ThinkingSphinx Index
define_index do
indexes spots.name, :as => :spot_name
indexes spots.city, :as => :spot_city
indexes spots.state, :as => :spot_state
indexes spots.country, :as => :spot_country
indexes spots.season, :as => :spot_season
indexes trip.name, :as => :name, :sortable => true
indexes trip.duration, :as => :duration
has trip.budget, :as => :budget
has trip.created_at, :as => :created_at
has trip.rating_average, :as => :rating_average
has trip_id
set_property :delta => true
end
end
Some scenarios:
1. In my development, the delta column all are 1's, whether or not an
entry is updated.
2. In my production, the delta column all are 0's. When I could update
it (where I actually forgot adding the set_trip_day_delta_flag), the
respective column would change to 1 until next index. The delta won't
be indexed though.
Maybe we should ignore the previous error message, and start from
scratch to see if the code is right.
Thanks a bunch Pat.
On Nov 22, 9:42 pm, Pat Allan <[email protected]> wrote:
> Hi Victor
>
> I'm not quite sure what this 'set_trip_day_delta_flag' method is you're
> referring to. Remind me again: what does your model look like? What is this
> method supposed to do?
>
> Cheers
>
> --
> Pat
>
> On 22/11/2010, at 8:23 PM, Victor wrote:
>
> > Hi Pat,
>
> > On the move to setting up delta index. Have followed steps outlined.
>
> > When I try to save an entry without set_model-name_delta_flag, the
> > delta column of that database table will be changed from 0 to 1, but
> > don't get indexed.
>
> > When I try to save an entry with set_model-name_delta_flag (declared
> > under private), it gave this 500 internal server error:
>
> > NameError (undefined local variable or method `trip_day' for #<Spot:
> > 0x9e02ab4>):
> > app/models/spot.rb:104:in `set_trip_day_delta_flag'
>
> > But the entry is saved anyway, but not indexed. Delta column for this
> > table remains 0.
>
> > What have I done wrong?
>
> > Thanks.
>
> > --
> > 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
> > athttp://groups.google.com/group/thinking-sphinx?hl=en.
>
>
--
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.