I''m doing some ORM to a legacy Oracle DB using ActiveRecord, not using
Rails, but since ActiveRecord is part of Rails, I figured this would be
the place for it.
When I create the habtm relationship, I can access the data just fine,
but when I use the << operator to add a record, I get the following
error:
The relationship in question has the following schema:
T_TRACK_DELIVERY_METHOD
Name Type
----------------------------------------- ----------------------------
ID NUMBER(9)
DELIVERY_CODE VARCHAR2(30)
DISPLAY_NAME VARCHAR2(75)
DISPLAY_DEFAULT NUMBER(1)
[snip]
T_PROJECTS
Name Type
----------------------------------------- ----------------------------
ID NUMBER(9)
NAME VARCHAR2(50)
ABBREVIATION VARCHAR2(10)
[snip]
T_TRACK_DELIVERY_METH_PRJ_X
Name Type
----------------------------------------- ----------------------------
DELMETH_ID NUMBER(9)
PRJ_ID NUMBER(9)
here are my models:
--------------begin--------------
class Project < ActiveRecord::Base
has_and_belongs_to_many(
:deliverymethods,
:class_name => "DeliveryMethod",
:association_foreign_key=>"DELMETH_ID",
:foreign_key=>"PRJ_ID",
:join_table=>"T_TRACK_DELIVERY_METH_PRJ_X"
)
set_table_name "T_PROJECTS"
set_sequence_name "S_PROJECTS"
end
class DeliveryMethod < ActiveRecord::Base
has_and_belongs_to_many(
:projects,
:association_foreign_key=>"PRJ_ID",
:foreign_key=>"DELMETH_ID",
:join_table=>"T_TRACK_DELIVERY_METH_PRJ_X"
)
set_table_name "T_TRACK_DELIVERY_METHOD"
set_sequence_name "S_TRACK_DELIVERY_METHOD"
end
-------------- end --------------
The following code:
--------------begin--------------
delmeth = DeliveryMethod.find(10)
prj = Project.find(1000)
prj.deliverymethods << delmeth
-------------- end --------------
Gives me this error:
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/abstract_adapter.rb:120:in
`log'': OCIError: ORA-00928: missing SELECT keyword: INSERT INTO
T_TRACK_DELIVERY_METH_PRJ_X () VALUES ()
(ActiveRecord::StatementInvalid)
from
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/oracle_adapter.rb:271:in
`execute''
[snip]
Obviously for some reason ActiveRecord is not putting the column names
or values into the insert, but I''m having a heck of a time figuring out
why. Any info would be greatly apreciated.
--
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
-~----------~----~----~----~------~----~------~--~---