Ruby on Rails Tuesday, July 31, 2012

deal bitte wrote in post #1070764:
>
> Project.rb
> ------------------
> class Project < ActiveRecord::Base
> has_and_belongs_to_many :people
> has_many :documents, :conditions => ["project_id =?", self.id ]
> ..
> ..
> end
>
> application_helper.rb
> --------------------------
>
> def find_projects
> user = Person.find(session[:userid])
> projects = Project.find(:all)
> ..
> ..
> ..
> end
>
> I am getting an error
> undefined method `id' for #<Class:0x182237ac> (self.id is the problem
> guess)

Not really answering your question here, but i would restructure some of
this code as follows, to better go with rails 3

class Project < ActiveRecord::Base
has_many :people, :through => 'people_project_join_table'
has_many :documents #:foreign_key => 'project_id' is default for this
relationship. Don't need.
..
..


def find_projects
user = Person.find(session[:userid])
projects = Project.all
..
..
..
end
--

Beyond that, whenever you get an error like 'undefined method for
class', first make sure you're in fact working with the class you think
you're working with by doing myobj.class

a common slip-up for me is trying to use object methods on an array of
said objects. Most scopes and associations will return arrays.

--
Posted via http://www.ruby-forum.com/.

--
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@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

No comments:

Post a Comment