acts_as_commentable issues?

Hi All,

I am using the acts_as_commentable plugin (http://www.juixe.com/projects/acts_as_commentable) and have struck a slight issue.

I have a number of models that use acts_as_commentable (news, events & documents) that typically look like:

class News < ActiveRecord::Base   belongs_to :user   acts_as_commentable end

The controllers are like:

class NewsController < ApplicationController   ...   def show     @news= News.find(params[:id])     @comments = @news.comments   end   ... end

And the view: News--- <%= render :partial => '/comments/comment', :collection => @comments %>

Comments --- <%= comment.title %> <%= comment.user.fullname %>

This last line references a function in the user model:

def fullname   "#{firstname} #{surname}" end

When there are no comments attached to the news, events and documents display correctly (probably because the comments code is not called). When I add a comment I get the error:

"undefined method 'fullname' for #<User:0x92836498>"

This is really weird because I have a comments controller that uses the same calls, partials etc, but displays the comments as expected.

Any hints?

More info for you hackers:

I thought I discovered the problem when the CommentControler was returning class "Comment", but the NewsController was returning class "Comments" (note the extra s).

So, I removed all the references to "Comments" I could find to leave all the model plumbing to acts_as_commentable (which I can now see does all this for you).

That did not fix the issue, in fact things are even more bizzare than I first thought....

If I view a news/event/document with comments the first pass works fine. Hit refresh and you get an error (undefined method). WTF?

The SQL is slightly differnet as well - on the first pass we get"

SELECT * FROM comments WHERE (comment.commentable_id=5 AND comment.commentable_type = "News') SHOW FIELDS FROM comments SHOW FIELDS FROM users SELECT * FROM users WHERE (users.id = 1)

The second pass: SELECT * FROM comments WHERE (comment.commentable_id=5 AND comment.commentable_type = "News') SHOW FIELDS FROM users SELECT * FROM users WHERE (users.id = 1)

The "SHOW FIELDS FROM comments" goes missing? Is this normal? What does it mean?

Anyway, I am off to a long "business" lunch to ponder, drink and ponder some more....