Hello
I have the following code which looks for all the comments on a
specified blog post and neighborhood.
---
comment_activity = PostComment.find(:all, :select =>
"post_comments.*",
                                         :joins => "INNER JOIN posts
ON posts.id = post_comments.post_id",
                                        :conditions =>
["posts.neighborhood_id = ? AND post_comments.created_at >= ?",
@neighborhood.id, 5.days.ago],
                                         :order =>
"post_comments.created_at DESC")
---
It works great and generates the following SQL:
---
SELECT post_comments.*
FROM post_comments
INNER JOIN posts ON posts.id = post_comments.post_id
WHERE (posts.neighborhood_id = 1 AND post_comments.created_at
>''2008-07-19 02:50:54'')
ORDER BY post_comments.created_at DESC
---
I added next the following code on the post_comment model to try and
fetch the users who wrote each post comment. The post_comments table
has a user_id column that references the user who wrote it.
---
belongs_to :comment_by, :select => "id, name, lastname",
:foreign_key
=> "user_id", :class_name => "User"
----
I added the line ":include => [:comment_by]" to my query to load
the
user data like this:
---
comment_activity = PostComment.find(:all, :include =>
[:comment_by], :select => "post_comments.*",
                                         :joins => "INNER JOIN posts
ON posts.id = post_comments.post_id",
                                        :conditions =>
["posts.neighborhood_id = ? AND post_comments.created_at >= ?",
@neighborhood.id, 5.days.ago],
                                         :order =>
"post_comments.created_at DESC")
---
But then I get the following generated sql query on my log which is
not what I am thriving to do:
---
SELECT `post_comments`.`id` AS t0_r0, `post_comments`.`user_id` AS
t0_r1, `post_comments`.`post_id` AS t0_r2, `post_comments`.`comment`
AS t0_r3, `post_comments`.`created_at` AS t0_r4,
`post_comments`.`updated_at` AS t0_r5, `users`.`id` AS t1_r0,
`users`.`email` AS t1_r1, `users`.`crypted_password` AS t1_r2,
`users`.`salt` AS t1_r3, `users`.`name` AS t1_r4, `users`.`lastname`
AS t1_r5, `users`.`gender` AS t1_r6, `users`.`zipcode` AS t1_r7,
`users`.`birthday` AS t1_r8, `users`.`remember_token` AS t1_r9,
`users`.`remember_token_expires_at` AS t1_r10,
`users`.`activation_code` AS t1_r11, `users`.`activated_at` AS t1_r12,
`users`.`created_at` AS t1_r13, `users`.`updated_at` AS t1_r14,
`users`.`neighborhood_id` AS t1_r15, `users`.`photo_file_name` AS
t1_r16, `users`.`photo_content_type` AS t1_r17,
`users`.`photo_file_size` AS t1_r18, `users`.`status_message` AS
t1_r19, `users`.`status_update` AS t1_r20 FROM post_comments LEFT
OUTER JOIN `users` ON `users`.id = `post_comments`.user_id INNER JOIN
posts ON posts.id = post_comments.post_id WHERE (posts.neighborhood_id
= 1 AND
post_comments.created_at >= ''2008-07-19 02:52:10'') ORDER BY
post_comments.created_at DESC
---
What do I am doing wrong? Any help or advice? Thanks!
--~--~---------~--~----~------------~-------~--~----~
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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---