in MyAController I want to create an instance of MyBModel, and have it insert into the table for the MyB models So, in a function in MyAController, I have MyB myB = MyB.new myB.something = whatever myB.save Shouldn''t that have inserted a new row into the table for MyB models?
On Sep 2, 3:20 pm, RVince <rvinc...-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org> wrote:> in MyAController I want to create an instance of MyBModel, and have it > insert into the table for the MyB models > > So, in a function in MyAController, I have > > MyB myB = MyB.new > myB.something = whatever > myB.save > > Shouldn''t that have inserted a new row into the table for MyB models?it will if validations didn''t fail. Fred
Fred, If I don''t have any validations, then it must be that one of the parameters I am trying to set in the model doesn''t comport with what the database is looking for I assume? Thanks, RVince
2009/9/2 RVince <rvince99-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org>:> > in MyAController I want to create an instance of MyBModel, and have it > insert into the table for the MyB models > > So, in a function in MyAController, I have > > MyB myB = MyB.new > myB.something = whatever > myB.save > > Shouldn''t that have inserted a new row into the table for MyB models?Test the return value from save to see if it succeeded. Look in the log (log/development.log) to see if any errors there. Colin> > > > >
Ah, right..it really IS so much easier. Sorry for the dumb Q''s here guys, been stuck in silly Javaland with the day job, and not thinking the RubyRails-sense properly here. -Rvince On Sep 2, 11:28 am, Colin Law <clan...-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> wrote:> 2009/9/2 RVince <rvinc...-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org>: > > > > > in MyAController I want to create an instance of MyBModel, and have it > > insert into the table for the MyB models > > > So, in a function in MyAController, I have > > > MyB myB = MyB.new > > myB.something = whatever > > myB.save > > > Shouldn''t that have inserted a new row into the table for MyB models? > > Test the return value from save to see if it succeeded. Look in the > log (log/development.log) to see if any errors there. > > Colin > >
RVince wrote:> Fred, > > If I don''t have any validations, then it must be that one of the > parameters I am trying to set in the model doesn''t comport with what > the database is looking for I assume? Thanks, RVinceInstead of assuming, look at your log. Best, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/.
It doesn;t save and the log reads: NoMethodError (undefined method `MyB'' for #<MyAController:0x664f93c>): app/controllers/mya_controller.rb:174:in `cxl'' But I DO have a MyB model: class MyB < ActiveRecord::Base end as well as a MyBsController: class MyBsController < ApplicationController end Im confused regarding ActiveRecord here -- I''m just trying to add a record into the table associate with MyB from MyAsController. -RVince
On Sep 3, 12:00 pm, RVince <rvinc...-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org> wrote:> It doesn;t save and the log reads: > > NoMethodError (undefined method `MyB'' for #<MyAController:0x664f93c>): > app/controllers/mya_controller.rb:174:in `cxl'' >You could have said that first time round. Your code reads MyB myB = MyB.new I assume you''re more familiar with a language where you have to type and declare variables and this is what you''re doing. ruby doesn''t do that though (and probably parses it as MyB(myB = MyB.new) Fred> But I DO have a MyB model: > > class MyB < ActiveRecord::Base > end > > as well as a MyBsController: > > class MyBsController < ApplicationController > end > > Im confused regarding ActiveRecord here -- I''m just trying to add a > record into the table associate with MyB from MyAsController. -RVince
2009/9/3 RVince <rvince99-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org>:> > It doesn;t save and the log reads: > > NoMethodError (undefined method `MyB'' for #<MyAController:0x664f93c>): > app/controllers/mya_controller.rb:174:in `cxl''If you look at the error carefully you will see that it is expecting MyB to be a method of MyAcController for some reason. Have a look at the code around line 174 and work out what MyB is supposed to be at that point. If you cannot see the problem show us the code around the failure. I notice that it is MyAController, I would expect that to be MyAsController but that may not be related to this problem. Colin> > But I DO have a MyB model: > > class MyB < ActiveRecord::Base > end > > as well as a MyBsController: > > class MyBsController < ApplicationController > end > > Im confused regarding ActiveRecord here -- I''m just trying to add a > record into the table associate with MyB from MyAsController. -RVince > > >
Guys, Ok here is the code (I changed the class names and simplified in what I sent earlier -- here is the exact code) class ChannelsController < ApplicationController .. def cxl boxchangedata offToServer params[''id''].to_i,current_associate.username, " ", "Cxl",params[''channelnotes''] puts params[''cxlidx''] if params[''cxlidx''] == "0" Channelnote cnote = Channelnote.new cnote.note = params[''channelnotes''] cnote.channel_id = @channel.id cnote.associate_id = current_associate.id g=cnote.save puts "***"+g.to_s end render :partial => ''channelnotesfield'' # to repop the box end ... end (Channelnote is MyB in the previous). Here is the (exact) error I am getting from the log: NoMethodError (undefined method `Channelnote'' for #<ChannelsController: 0x671df1c>): app/controllers/channels_controller.rb:170:in `cxl'' Thanks for looking at this for me guys -- I''m just confused about why this won''t write a Channelnote record here. -Rvince
On Thu, Sep 3, 2009 at 6:04 AM, RVince<rvince99-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org> wrote:> Channelnote cnote = Channelnote.newDude, this isn''t Java. :-) cnote = Channelnote.new -- Hassan Schroeder ------------------------ hassan.schroeder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org twitter: @hassan
2009/9/3 RVince <rvince99-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org>:> > Guys, Ok here is the code (I changed the class names and simplified > in what I sent earlier -- here is the exact code) > class ChannelsController < ApplicationController > .. > def cxl > boxchangedata > offToServer params[''id''].to_i,current_associate.username, " ", > "Cxl",params[''channelnotes''] > puts params[''cxlidx''] > if params[''cxlidx''] == "0" > Channelnote cnote = Channelnote.newAs Fred pointed out this is not C++, it should be cnote = Channelnote.new I kept doing that at first also.> cnote.note = params[''channelnotes''] > cnote.channel_id = @channel.id > cnote.associate_id = current_associate.idThe usual way to do this sort of thing is using the ActiveRecord relationships, then Rails does all this messy stuff for you. You should only very rarely have to mess about with id values. See the rails guide on ActiveRecord relationships. Colin> g=cnote.save > puts "***"+g.to_s > end > render :partial => ''channelnotesfield'' # to repop the box > end > ... > end > > (Channelnote is MyB in the previous). Here is the (exact) error I am > getting from the log: > > NoMethodError (undefined method `Channelnote'' for #<ChannelsController: > 0x671df1c>): > app/controllers/channels_controller.rb:170:in `cxl'' > > Thanks for looking at this for me guys -- I''m just confused about why > this won''t write a Channelnote record here. -Rvince > > >
Thanks so much guys! Damn...I''m getting up at 5 am to work on Rails and learn it and do a project in it, but I''m then 9 hours at the ole day job (working on the ole railroad...) writing Java hell. THere''s a Federal Building here in town, populated with a bunch of guys in their 60s with thinning hair and ponytails, writing cobol. If I just stick with Java I will become one of them! Which is why I am forcing myself to become rails-proficient (because as I say, Struts if for guys who don''t know Rails under JRuby.) Thanks again. -RVince