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.