Hey I have a problem with saving data to my sqlite db using active record. when i query an object from the db, update a property and save it using the active record save command it returns true, but nothing happens in the database. the user_course object is the right object from the db, it just doesn''t update the data property. # get user user = User.find_by_id(req.query["user_id"]); #get user-course data user_course user.user_courses.find_by_course_id(req.query["course_id"]) # set new data user_course.data= "test" # save user_course.save thx -- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Is their an error appearing in the log? -- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On 21 Jan 2008, at 09:40, Christian Kerth wrote:> > Hey I have a problem with saving data to my sqlite db using active > record. > > when i query an object from the db, update a property and save it > using > the active record save command it returns true, but nothing happens in > the database. > the user_course object is the right object from the db, it just > doesn''t > update the data property. > > > # get user > user = User.find_by_id(req.query["user_id"]); > #get user-course data > user_course > user.user_courses.find_by_course_id(req.query["course_id"]) > # set new data > user_course.data= "test" > # save > user_course.savecall save! instead of save. This should throw an exception indicating why it couldn''t save which should point you at the direction of the problem Fred> thx > -- > 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
save! also returns true I think this has something to do with the m:n relation user -> user_courses -> course when i try to save a attribute of a user object ist works, when i try to save to user_courses ist fails in the described way. my models look like: class Course < ActiveRecord::Base # set table name: courses set_table_name ''courses'' # set primary key: id set_primary_key ''id'' # users_courses (1:n) has_many :user_courses # users (m:n -> through table users_courses) has_many :users, :through => :user_courses end class User < ActiveRecord::Base set_table_name ''users'' set_primary_key ''id'' # users_courses (1:n) has_many :user_courses # courses (m:n -> through users_courses) has_many :courses, :through => :user_courses end class UserCourse < ActiveRecord::Base # set table name: users_courses set_table_name ''users_courses'' # courses (1:n) belongs_to :course, :foreign_key => ''course_id'' # users (1:n) belongs_to :user, :foreign_key => ''user_id'' end can somebody help? Frederick Cheung wrote:> On 21 Jan 2008, at 09:40, Christian Kerth wrote: > >> update the data property. >> user_course.save > call save! instead of save. This should throw an exception indicating > why it couldn''t save which should point you at the direction of the > problem > > Fred-- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
to start Rails is convention over configuration. change your models to class Course < ActiveRecord::Base # users_courses (1:n) has_many :user_courses # users (m:n -> through table users_courses) has_many :users, :through => :user_courses end class User < ActiveRecord::Base # users_courses (1:n) has_many :user_courses # courses (m:n -> through users_courses) has_many :courses, :through => :user_courses end class UserCourse < ActiveRecord::Base # set table name: users_courses set_table_name ''users_courses'' # courses (1:n) belongs_to :course, :foreign_key => ''course_id'' # users (1:n) belongs_to :user, :foreign_key => ''user_id'' end =====================================================by convention your join tables should be the pluralized forms of the two tables in alphabetical order (ie. courses_users) with the model ''CoursesUsers'' To start a few questions. What are the field in the three tables? If you find users_courses strait from the db (not through the association) does it save successfully? -- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
> > To start a few questions. > > What are the field in the three tables?Fields are: users ----- id integer PRIMARY KEY AUTOINCREMENT NOT NULL, username varchar(20), pass varchar(20), pin varchar(20), firstname varchar(50), lastname varchar(50), email varchar(50) courses ------- id integer PRIMARY KEY AUTOINCREMENT NOT NULL, coursecategorie_id integer, coursetype_id integer NOT NULL, url varchar(255), fspath varchar(255), lastupdate datetime users_courses ------------- user_id integer NOT NULL, course_id integer NOT NULL, coursestatus integer, suspenddata varchar(50), score integer, startdate datetime, expirationdate datetime, language varchar(20) CREATE INDEX users_courses_FKIndex1 ON users_courses (user_id); CREATE INDEX users_courses_FKIndex2 ON users_courses (course_id);> If you find users_courses strait from the db (not through the > association) does it save successfully?No! works: ------ user = User.find_by_id(req.query["user_id"]) user.pin = "haha" user.save! doesn''t work: ------------- only returns one row, because of the limited data in the table in the debugger everthing sheems ok. uc = UserCourse.find_by_course_id(req.query["course_id"]) uc.suspenddata = "haha" uc.save! thx ck -- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I''m going to go out on a limb and say that you don''t have a problem creating a new users_courses record. I would put money that you need only add a primary key to the users_courses table. -- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Keynan Pratt wrote:> I''m going to go out on a limb and say that you don''t have a problem > creating a new users_courses record. > > I would put money that you need only add a primary key to the > users_courses table.i dont want to have a single primary key, i want a composite one that consists out of user_id and course_id, like it''s done in traditional db engieering. -- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On 21 Jan 2008, at 14:18, Christian Kerth wrote:> > Keynan Pratt wrote: >> I''m going to go out on a limb and say that you don''t have a problem >> creating a new users_courses record. >> >> I would put money that you need only add a primary key to the >> users_courses table. > > i dont want to have a single primary key, i want a composite one that > consists out of user_id and course_id, like it''s done in traditional > db > engieering.ActiveRecord doesn''t do composite prinmary keys. Just in case, you know that # set table name: courses set_table_name ''courses'' # set primary key: id set_primary_key ''id'' aren''t actually needed. Fred> > -- > 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Keynan Pratt wrote:> I would put money that you need only add a primary key to the > users_courses table.Oh, yeah.... you were so right! But i did achieve what i wanted (a composite primary key) with the composite_primary_keys extension to AR. Sheems to work fine. Thanks for pointing me in the right direction! ck -- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---