From: Shawn Anderson Date: 2008-11-27T02:00:54+09:00 Subject: Re: KirbyBase : update method problem ------=_Part_15517_17954373.1227719140302 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline This should work: pt.update(:project_title => "new",:p_tasks=>nil) {|r| r.recno == 1} not sure if that's what you were shooting for, and I'm not sure why that doesn't work the way you were doing it. I'll try to look at it some more today. /Shawn On Wed, Nov 26, 2008 at 2:45 AM, Adam Akhtar wrote: > the basic code below makes kirby complain that im trying to update a > link_to many field in my table when as can be seen I am not. Here is > some code for you to copy into irb to reproduce the error (though the > problem lies with only the pt table i have also included the code to > create the table its linked to called tt). I have read the manual many > times to no avail. I also looked through kirbys code but im a beginner > and i got lost in it ;) > --------------------------------------------- > > require 'kirbybase' > > db = KirbyBase.new > > db.drop_table(:pt) if db.table_exists?(:pt) > db.drop_table(:tt) if db.table_exists?(:tt) > > tt = db.create_table(:tt, :task_title, {:DataType=>:String, > :Default=>'No Title'}, :completed, {:DataType=>:Boolean, > :Default=>true}, :project, {:DataType=>:String, > :Default=>'None'},:p_project_id, :Integer) > > pt = db.create_table(:pt, :project_title, {:DataType=>:String, > :Default=>'No Project Name'}, :p_project_id, {:DataType=>:Integer, > :Default=>0}, :p_tasks,{:DataType=>:ResultSet, > :Link_many=>[:p_project_id, :task_table, :p_project_id]}) > > pt.insert(:project_title => "old") #creates record with recno = 1 > pt.update(:project_title => "new") {|r| r.recno == 1} > > ------------------------ > > here is my error - p_tasks is the linked item in the other table tt. > > ArgumentError: You cannot input a value for this field: p_tasks > from > c:/ruby/lib/ruby/gems/1.8/gems/KirbyBase-2.6/lib/kirbybase.rb:3079: > in `check_against_input_for_specials' > from > c:/ruby/lib/ruby/gems/1.8/gems/KirbyBase-2.6/lib/kirbybase.rb:3078: > in `each' > from > c:/ruby/lib/ruby/gems/1.8/gems/KirbyBase-2.6/lib/kirbybase.rb:3078: > in `check_against_input_for_specials' > from > c:/ruby/lib/ruby/gems/1.8/gems/KirbyBase-2.6/lib/kirbybase.rb:2283: > in `set' > from > c:/ruby/lib/ruby/gems/1.8/gems/KirbyBase-2.6/lib/kirbybase.rb:2256: > in `each' > from > c:/ruby/lib/ruby/gems/1.8/gems/KirbyBase-2.6/lib/kirbybase.rb:2256: > in `set' > from > c:/ruby/lib/ruby/gems/1.8/gems/KirbyBase-2.6/lib/kirbybase.rb:2220: > in `update' > from (irb):72 > from :0 > > ------------------------- > > in case your wondering, tt is a tasks table and pt is a projects table. > This is for a simple todo list app. Projects are comprised of tasks > hence the link. > > Can anyone help? > -- > Posted via http://www.ruby-forum.com/. > > ------=_Part_15517_17954373.1227719140302--