class MyModel < ActiveRecord::Base
  set_table_name "some_table_name"
  set_sequence_name "my_sequnce_name"
end

MyModel.new(:attr1 => 1, attr2 => 2).save!

leads to a exception. With:

jruby 1.6.1
gem 'rails', '3.0.7'
gem 'activerecord-jdbc-adapter', '1.1.1'


In this case prefetch_primary_key? returns false.
So the insert method in activerecord-jdbc-adapter-1.1.1/lib/arjdbc/
oracle/adapter.rb needs the sequence-name to determine the next id,
but arel doesn't use this
parameter. Without a sequence-name the default sequence-name
table_name_id is
used. This sequence doesn't exists.

Regards
Dieter

On 11 Mai, 20:16, Aaron Patterson <[email protected]> wrote:
> On Wed, May 11, 2011 at 12:57:32AM -0700, Consu wrote:
> > Hello,
>
> > Arel::SelectManager (arel 2.0.9) uses following statement to insert a
> > new record:
>
> > @engine.connection.insert im.to_sql, 'AREL', primary_key_name,
> > primary_key_value
>
> > But in DatabaseStatements insert ist defined as:
>
> > insert(sql, name = nil, pk = nil, id_value = nil, sequence_name = nil)
>
> > Actually, Arel::SelectManager does not use the sequence name. This
> > leads to issues for instance with
> > activerecord-jdbc-adapter and Oracle, when you use sequence names
> > ignoring rails conventions.
>
> > Is it possible to fix this issue?
>
> Can you provide a test case to reproduce the problem?  We run a CI
> against Oracle, and all the tests are green.  If you could give us a
> test to show the problem, I could fix it.
>
> --
> Aaron Pattersonhttp://tenderlovemaking.com/
>
>  application_pgp-signature_part
> < 1 KBAnzeigenHerunterladen

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en.

Reply via email to