I’m getting this very weird error and I can’t figure out what the
problem is. I’m using acts_as_commentable. Basically, I have a partial
with this code in it:
- <%= link_to comment.user.login, profile_path(User.find
(comment.user_id).profile) %>
- <%= comment.comment %>
and here’s the code that calls the partial:
<% @comments.each do |comment| %>
<%= render :partial => ‘partials/comment’, :locals => {:comment =>
comment} %>
<% end %>
profile_path(User.find(comment.user_id).profile) is the hack I’ve had
to do to avoid this problem which is weird. All users have a profile,
so they are accessible by user.profile. I get the stack overflow error
when I do comment.user.id, but accessing comment.user.login or any
other attribute works fine. When I do comment.user.profile I get the
NoMethodError. I’ve checked over and over and all associations are in
place…nothing seems wrong to me, yet this error won’t go away. What
could be the problem? 
profile_path(User.find(comment.user_id).profile) is the hack I’ve had
to do to avoid this problem which is weird. All users have a profile,
so they are accessible by user.profile. I get the stack overflow error
when I do comment.user.id, but accessing comment.user.login or any
other attribute works fine. When I do comment.user.profile I get the
NoMethodError. I’ve checked over and over and all associations are in
place…nothing seems wrong to me, yet this error won’t go away. What
could be the problem? 
You could start by showing the models that seem to be causing the
problem 
Fred
Quoting Mike C [email protected]:
<dd><%= comment.comment %></dd>
profile_path(User.find(comment.user_id).profile) is the hack I’ve had
to do to avoid this problem which is weird. All users have a profile,
so they are accessible by user.profile. I get the stack overflow error
when I do comment.user.id, but accessing comment.user.login or any
other attribute works fine. When I do comment.user.profile I get the
NoMethodError. I’ve checked over and over and all associations are in
place…nothing seems wrong to me, yet this error won’t go away. What
could be the problem? 
I’ve found model.id problematic. I now always use model[:id] and have
had
fewer problems, none related to ambiquities around object ID versus
record ID,
etc.
Jeffrey
class Comment < ActiveRecord::Base
belongs_to :commentable, :polymorphic => true
NOTE: install the acts_as_votable plugin if you
want user to vote on the quality of comments.
#acts_as_voteable
NOTE: Comments belong to a user
belongs_to :user
…
end
class Story < ActiveRecord::Base
acts_as_commentable
acts_as_taggable_on :tags
has_many :cores
belongs_to :user
validates_presence_of :title
validates_presence_of :description
validates_presence_of :rules
validates_length_of :title, :within => 3…50
end
class User < ActiveRecord::Base
…
has_many :stories
has_many :cores
has_many :comments
has_one :profile
…
end
Thanks. That fixed that problem…but the other problem still exists. :
(
With the help of a friend, I’ve found what’s causing the error. In the
will_paginate plugin under tests/fixtures is a user.rb class defined
as class User ActiveRecord::Base. Rails was using that one instead of
one in my app/model. My new question is, why was it doing this? It
shouldn’t have loaded that one, right?