Very odd NoMethodError/stack overflow

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? :frowning:

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? :frowning:

You could start by showing the models that seem to be causing the
problem :slight_smile:

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? :frowning:

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?

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs