Javix
2011-Mar-15 09:07 UTC
Are all the accessors created automatically in non-Rails application
I wonder if all the accessors are created automatically in non-Rails application? By requiring ''active_record'' and ''rubygems'' didn''t solve my problem. I just created a Ruby file with 2 classes inside: @@@ require ''rubygems'' require ''active_record'' ActiveRecord::Base.establish_connection( :adapter => ''oracle_enhanced'', :database => ''db_bname, :username => ''username, :password => ''pwd'' ) class Supplier < ActiveRecord::Base set_table_name :lcssupplier set_primary_key :ida2a2 end class RunUpdate def initialize(env = "dev") @env = env case @env when ''dev'' @name = ''att1'' else raise "Unknown environment: #{env}" end update_dpp_suplliers end private def update_dpp_suplliers dpp_supplier = Supplier.where(:num2=>56180).first puts "Reading supplier name before update: #{dpp_supplier.read_attribute(@name)}" dpp_supplier.send("#{@name}=", "TOTO") dpp_supplier.save! puts "DPP supplier name AFTER update: #{dpp_supplier.read_attribute(@name)}" end end RunUpdate.new(''dev'') @@@ It works without problem on another database (MySQL) but raises an error on Oracle DB. The only difference is that when running on MySQL DB, I didn''t have to use ''set_table_name'' and ''set_primary_key'' because the table was created according the RoR convention. It''s not the case for Oracle table. Here is the error I get: @@@ Reading supplier name before update: DP China / Shanghai - SHENZHOU KNITTING(AN HUI)CO.LTD C:/Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3.0.5/lib/active_model/ attribute_methods.rb:271:in `module_eval'': C:/Ruby192/lib/ruby/gems/ 1.9.1/gems/activemodel-3.0.5/lib/active_model/attribute_methods.rb: 272: syntax error, unexpected tGVAR, expecting '')'' (SyntaxError) if method_defined?(:blob$entrysetadhocacl?) ^ C:/Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3.0.5/lib/active_model/ attribute_methods.rb:273: syntax error, unexpected tGVAR, expecting $end undef :blob$entrysetadhocacl? ^ from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3.0.5/lib/ active_model/attribute_methods.rb:271:in `block (2 levels) in define_attribute_methods'' from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3.0.5/lib/ active_model/attribute_methods.rb:262:in `each'' from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3.0.5/lib/ active_model/attribute_methods.rb:262:in `block in define_attribute_methods'' from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3.0.5/lib/ active_model/attribute_methods.rb:261:in `each'' from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3.0.5/lib/ active_model/attribute_methods.rb:261:in `define_attribute_methods'' from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.5/ lib/active_record/attribute_methods.rb:13:in `define_attribute_methods'' from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.5/ lib/active_record/attribute_methods.rb:41:in `method_missing'' from C:/Documents and Settings/MACHINE_DEV3/My Documents/ ror_prj/ruby_drafts/lib/update_cnuf_1.rb:44:in `update_dpp_suplliers'' from C:/Documents and Settings/MACHINE_DEV3/My Documents/ ror_prj/ruby_drafts/lib/update_cnuf_1.rb:37:in `initialize'' from C:/Documents and Settings/MACHINE_DEV3/My Documents/ ror_prj/ruby_drafts/lib/update_cnuf_1.rb:51:in `new'' from C:/Documents and Settings/MACHINE_DEV3/My Documents/ ror_prj/ruby_drafts/lib/update_cnuf_1.rb:51:in `<main>'' @@@ Any idea ? -- 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.
Frederick Cheung
2011-Mar-15 09:30 UTC
Re: Are all the accessors created automatically in non-Rails application
On 15 Mar 2011, at 09:07, Javix <s.cambour-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I wonder if all the accessors are created automatically in non-Rails > application?I don''t the behaviour of a rails app is significantly different compared to a standalone ruby script that happens to use active record. By the looks of it rails is barfing because it''s trying to define a method called blob$entrysetadhocacl? which isn''t a legal method name. Do you have a column of that name? Fred> By requiring ''active_record'' and ''rubygems'' didn''t solve > my problem. I just created a Ruby file with 2 classes inside: > @@@ > require ''rubygems'' > require ''active_record'' > > ActiveRecord::Base.establish_connection( > :adapter => ''oracle_enhanced'', > :database => ''db_bname, > :username => ''username, > :password => ''pwd'' > ) > > class Supplier < ActiveRecord::Base > set_table_name :lcssupplier > set_primary_key :ida2a2 > end > > class RunUpdate > def initialize(env = "dev") > @env = env > case @env > when ''dev'' > @name = ''att1'' > else > raise "Unknown environment: #{env}" > end > update_dpp_suplliers > end > > private > def update_dpp_suplliers > dpp_supplier = Supplier.where(:num2=>56180).first > puts "Reading supplier name before update: > #{dpp_supplier.read_attribute(@name)}" > dpp_supplier.send("#{@name}=", "TOTO") > dpp_supplier.save! > puts "DPP supplier name AFTER update: > #{dpp_supplier.read_attribute(@name)}" > end > end > > RunUpdate.new(''dev'') > @@@ > > It works without problem on another database (MySQL) but raises an > error on Oracle DB. The only difference is that when running on MySQL > DB, I didn''t have to use ''set_table_name'' and ''set_primary_key'' > because the table was created according the RoR convention. It''s not > the case for Oracle table. > Here is the error I get: > @@@ > Reading supplier name before update: DP China / Shanghai - SHENZHOU > KNITTING(AN HUI)CO.LTD > C:/Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3.0.5/lib/active_model/ > attribute_methods.rb:271:in `module_eval'': C:/Ruby192/lib/ruby/gems/ > 1.9.1/gems/activemodel-3.0.5/lib/active_model/attribute_methods.rb: > 272: syntax error, unexpected tGVAR, expecting '')'' (SyntaxError) > if method_defined?(:blob$entrysetadhocacl?) > ^ > C:/Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3.0.5/lib/active_model/ > attribute_methods.rb:273: syntax error, unexpected tGVAR, expecting > $end > undef :blob$entrysetadhocacl? > ^ > from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3.0.5/lib/ > active_model/attribute_methods.rb:271:in `block (2 levels) in > define_attribute_methods'' > from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3.0.5/lib/ > active_model/attribute_methods.rb:262:in `each'' > from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3.0.5/lib/ > active_model/attribute_methods.rb:262:in `block in > define_attribute_methods'' > from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3.0.5/lib/ > active_model/attribute_methods.rb:261:in `each'' > from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3.0.5/lib/ > active_model/attribute_methods.rb:261:in `define_attribute_methods'' > from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.5/ > lib/active_record/attribute_methods.rb:13:in > `define_attribute_methods'' > from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.5/ > lib/active_record/attribute_methods.rb:41:in `method_missing'' > from C:/Documents and Settings/MACHINE_DEV3/My Documents/ > ror_prj/ruby_drafts/lib/update_cnuf_1.rb:44:in `update_dpp_suplliers'' > from C:/Documents and Settings/MACHINE_DEV3/My Documents/ > ror_prj/ruby_drafts/lib/update_cnuf_1.rb:37:in `initialize'' > from C:/Documents and Settings/MACHINE_DEV3/My Documents/ > ror_prj/ruby_drafts/lib/update_cnuf_1.rb:51:in `new'' > from C:/Documents and Settings/MACHINE_DEV3/My Documents/ > ror_prj/ruby_drafts/lib/update_cnuf_1.rb:51:in `<main>'' > @@@ > Any idea ? > > -- > 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. >-- 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.