Hey all, I''m getting an undefined method ''c'' error. I''m in the students controller, and I''m trying to find the book associated with the student, and then take that book''s id_number and assign the room''s id to it and then save the book: def student_test @student = (params[:id] and Student.find(params[:id])) || Student.new run_sequence :testize end def test_finalize Student.transaction do @student.update_attributes(params[:student]) and @student.test! if (params[:student]) room = Room.new room.room_num = 5 room.save c = Student.for_test && @student #@student.for_test doesn''t work, but I''m trying to apply named_scope to @student to get book associated with the selected student. Book.c.id_num = room.id Book.save end end Student model: named_scope :for_test, :include => :book, :conditions => [:first, "book.location_id == site_id"] The idea is to find the book associated with the student via the location and then pass the room id into that book''s id_num. Thanks for any response. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
John Merlino wrote: Given I see lots of issues with your code, I''m going to answer your question directly.> Book.c.id_num = room.idThis line references a class method on the Book class named c. Something like this: class Book def self.c ... end end This could also be defined using a named_scope, which essentially becomes a class method: class Book named_scope :c, ... end So if Book has no c method defined, and nothing creates one at runtime, then Ruby gives you the error you''re seeing. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
I changed it around: def student_test @student = Student.for_test.find(params[:id]) if params[:id] @student ||= Student.new run_sequence :testize end def test_finalize Student.transaction do if (params[:student]) and @student.update_attributes(params[:student]) @student.test! end room = Room.new(:room_num => 5) room.save book = @student.book book.id_num = room.id book.save end end But still get this error message: undefined method `id_num='' -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Can you show the full error message? -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Sharagoz -- wrote:> Can you show the full error message?In the code, I actually have: book = @student.books not book = @student.book This is because in Student model, I have has_many :books And named_scope: named_scope :for_test, :include => :books, :conditions => ["books.location_id = site_id && books.book_state_id = 5"] And this is the full error: NoMethodError in StudentsController#student_test undefined method `id_num='' for #<Class:0x106036ea0> -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.