Thanks Guys For your reply.
I got the answer.

On Aug 6, 1:03 pm, Jim Ruther Nill <[email protected]> wrote:
> Hi Mike,
>
> Yes. You have to add the ratings column in your database.  But since you are
> using the plugin which adds a 'rating' method for your model, you need to
> have a different column name for your database, hence Pat and James
> suggested the name to be 'cached_rating'.  The reason behind this is
> TS/Sphinx only deals with columns that are actually in your database.  So
> any method in your model can't be used.
>
>    1. create a migration to add the cached_rating column to your table
>    2. add the before_validation callback and necessary methods (as coded by
>    Pat) to set the cached_rating value and save it in the database.
>    3. rebuild your index
>    4. happy searching :D
>
>
>
> On Fri, Aug 6, 2010 at 3:42 PM, Mike Disuza <[email protected]> wrote:
> > Hi
> > I am confused, Are you saying that I have to add the "cached_rating"
> > column in my table? If yes then it is better I will store the "rating"
> > value by creating a new column in the table. So that i will not be
> > having this headche.
>
> > Thanks,
> > Mike
>
> > On Aug 6, 11:44 am, Pat Allan <[email protected]> wrote:
> > > Hi Mike
>
> > > I think it's before_validation... and you'd probably want something more
> > like:
>
> > >   before_validation :set_cached_rating
>
> > >   def set_cached_rating
> > >     self.cached_rating = rating
> > >   end
>
> > > This way the value is actually being stored in the database :)
>
> > > --
> > > Pat
>
> > > On 06/08/2010, at 4:39 PM, Mike Disuza wrote:
>
> > > > Hi,
> > > > I am trying your solution like this
> > > > My model is like this:-
> > > > "
> > > > before_validate :cache_rating
> > > > define_index do
> > > >    indexes :name,:sortable => true
> > > >    indexes cached_rating, :as=>:property_rating
> > > > end
> > > > def cache_rating
> > > >    self.rating
> > > > end
> > > > "
> > > > Whenever I am trying to rebuild the indexing using "rake ts:rebuild",
> > > > I am getting error "undefined method `before_validate' for #<Class:
> > > > 0xb6cce9c4>"
>
> > > > Can anyone help me out.
>
> > > > Thanks,
> > > > Mike
>
> > > > On Aug 5, 11:38 am, James Healy <[email protected]> wrote:
> > > >> Mike Disuza wrote:
> > > >>> For rating I am using "acts_as_a_rateable" plugin which is giving a
> > > >>> rating by using "obj.rating" method.
> > > >>> I know that Sphinx does not do indexing of the method.
>
> > > >>> Can anyone have any idea how to solve this?
>
> > > >> I'm not familiar with the acts_as_a_rateable plugin, but you probably
> > > >> have 2 options:
>
> > > >> * find out if the plugin stores the rating in your database somewhere
> > > >>   and add that column to your index
>
> > > >> * if the rating is purely calculated in ruby, you will have to add a
> > > >>   model callback that caches the value in your database. I've
> > described
> > > >>   this technique a few times on stack overflow, check out [1]
>
> > > >> -- James Healy <[email protected]>  Thu, 05 Aug 2010 16:37:45 +1000
>
> > > >> [1]
> >http://stackoverflow.com/questions/3391048/including-rails-activereco...
>
> > > > --
> > > > 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]<thinking-sphinx%[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]<thinking-sphinx%[email protected]>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/thinking-sphinx?hl=en.
>
> --
> -------------------------------------------------------------
> visit my blog athttp://jimlabs.heroku.com

-- 
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.

Reply via email to