I have a problem with this find.
I want include the association of forum_messages for last message and
for first_message.
is possible set 2 associations to 1 table with dinstict roles?
ForumTopic.find(:all,:include=>[:forum_messages,:users],
:finder_sql => "
SELECT forum_topics.id,forum_topics.title,reply,lecture,
last_message_id,last_user.user_id as
last_message_user_id,last_user.name as last_message_user_name,
last_message.created_at,last_user.image as
last_message_user_image,last_user.color as last_message_user_color,
first_user.name as author_name,first_user.id as
author_id,first_user.image as author_image, first_user.color as
author_color
FROM forum_topics
RIGHT JOIN (SELECT MAX(forum_messages.id) as
last_message_id,forum_topic_id,user_id as first_user_id
FROM forum_messages
GROUP BY forum_topic_id)as last on
last.forum_topic_id=forum_topics.id
LEFT JOIN forum_messaggi as last_message on
last_message.id=last_message_id
LEFT JOIN users as first_user on first_user_id=first_user.id
LEFT JOIN users as last_user on
last_message.utente=last_user.id
LEFT JOIN (SELECT count(*) as reply,forum_topic_id FROM
forum_messages GROUP BY forum_topic_id) as reply ON
reply.forum_topic_id=forum_topics.id
WHERE forum_topics.forum_section_id=#{section}
ORDER BY last_message.created_at DESC LIMIT
#{offset},#{length}",
:column_mapping => {
:primary_key => ‘id’,
:columns => {
‘id’ => ‘id’,
‘title’ => ‘title’,
‘reply’ => ‘reply’,
‘lecture’ => ‘lecture’,
},
:associations=>{
:forum_messages => {
:primary_key => ‘last_message_id’,
:columns => {
‘id’ => ‘last_message_id’,
‘created_at’ => ‘created_at’
},
:associations=>{
:users => {
:primary_key => ‘last_message_user_id’,
:columns => {
‘id’ => ‘last_message_user_id’,
‘name’ => ‘last_message_user_name’,
‘image’ => ‘last_message_user_image’,
‘color’ => ‘last_message_user_color’
}
}
}
},
:forum_messages => {
:primary_key => ‘first_message_id’,
:columns => {
‘id’ => ‘first_message_id’,
‘created_at’ => ‘created_at’
},
:associations=>{
:users => {
:primary_key => ‘first_message_user_id’,
:columns => {
‘id’ => ‘first_message_user_id’,
‘name’ => ‘first_message_user_name’,
‘image’ => ‘first_message_user_image’,
‘color’ => ‘first_message_user_color’
}
}
}
}
}
})
Thanks