Hey, i’m running into an N+1 problem, but i don't exactly know how to
:include in this situation. (controller code is at the bottom).
I'm trying to find all of the highest ranked definitions, and then
render their associated phrases.
A Phrase has many definitions. A Definition has many children
I already have all the info i need stored in @definitions, so this
should only require one SQL call, but unfortunately this line:
@Phrases << definition.phrase(:include => [:definitions => :children])
Doesn’t actually work.
Below is my controller code. Rails 2.1.0, Ruby 1.8.6…Thanks ahead of
time
def index
@definitions = Definition.find(:all, :include => [:children,
:phrase], :limit => 10, :order => 'rank DESC')
@Phrases = []
for definition in @definitions
@Phrases << definition.phrase(:include => [:definitions =>
:children])
end
@Phrases = @Phrases.uniq
if @Phrases != nil
@new_phrases = @Phrases.paginate(:page => params[:page], :order
=> 'word ASC', :per_page => 5)
end ## if @phrase !=nil
end ##def index
The full capture can be found under my Five Runs Account
https://tuneup.fiveruns.com/runs/699
If you have any suggestions i would love for my main page to not take
5000 milliseconds to load : )
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---