2005/12/7, Michael Koziarski <[EMAIL PROTECTED]>:
> Why are you taking the class methods as well? Column names won't
> conflict with class methods.
Because you won't be able to start a transaction on a model instance otherwise:
Game.find(1).transaction do
# Do stuff on game
end
I verified which #transaction method would be called. It was
ActiveRecord::Base.transaction, a class method. Here's a little test
I made:
$ type check.rb
p = proc do |event, file, line, id, binding, classname|
if id.to_s =~ /transaction/ then
printf "%8s %s:%-2d %10s %8s\n", event, file, line, id, classname
end
end
g = Game.new
set_trace_func p
g.transaction do
puts "In transaction"
end
set_trace_func nil
$ ruby script\runner "require 'check'"
call
./script/../config/../vendor/rails/activerecord/lib/active_record/transactions.rb:117
transaction ActiveRecord::Transactions
...
In transaction
return ./check.rb:10 transaction ActiveRecord::Transactions::ClassMethods
So, we do in fact have to gobble up the class methods. Maybe this is
an instance of Ruby being too helpful ?
Bye !
--
François Beausoleil
http://blog.teksol.info/
_______________________________________________
Rails-core mailing list
[email protected]
http://lists.rubyonrails.org/mailman/listinfo/rails-core