ActiveRecord throws an error when updating a View

I have a model based in a view:


class Item < ActiveRecord::Base
set_primary_key :id # I guess that this shouldn’t be necessary
end

When I do:

a = Item.first
a.any_attribute = “xxx”
a.save

it throws the error:

undefined method eq' for nil:NilClass C:/Program Files (x86)/IronRuby 1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/persistence.rb:259:inupdate’
C:/Program Files (x86)/IronRuby
1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/locking/optimistic.rb:77:in
update' C:/Program Files (x86)/IronRuby 1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/attribute_methods/dirty.rb:68:inupdate’
C:/Program Files (x86)/IronRuby
1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/timestamp.rb:60:in
update' C:/Program Files (x86)/IronRuby 1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/callbacks.rb:281:inupdate’
C:/Program Files (x86)/IronRuby
1.1.3/Lib/ruby/gems/1.9.1/gems/activesupport-3.0.9/lib/active_support/callbacks.rb:414:in
_run_update_callbacks' C:/Program Files (x86)/IronRuby 1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/callbacks.rb:281:inupdate’
C:/Program Files (x86)/IronRuby
1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/persistence.rb:250:in
create_or_update' C:/Program Files (x86)/IronRuby 1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/callbacks.rb:273:increate_or_update’
C:/Program Files (x86)/IronRuby
1.1.3/Lib/ruby/gems/1.9.1/gems/activesupport-3.0.9/lib/active_support/callbacks.rb:414:in
_run_save_callbacks' C:/Program Files (x86)/IronRuby 1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/callbacks.rb:273:increate_or_update’
C:/Program Files (x86)/IronRuby
1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/persistence.rb:40:in
save' C:/Program Files (x86)/IronRuby 1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/validations.rb:43:insave’
C:/Program Files (x86)/IronRuby
1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/attribute_methods/dirty.rb:21:in
save' C:/Program Files (x86)/IronRuby 1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/transactions.rb:240:insave’
C:/Program Files (x86)/IronRuby
1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/transactions.rb:292:in
with_transaction_returning_status' C:/Program Files (x86)/IronRuby 1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/connection_adapters/abstract/database_statements.rb:139:intransaction’
C:/Program Files (x86)/IronRuby
1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/transactions.rb:207:in
transaction' C:/Program Files (x86)/IronRuby 1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/transactions.rb:290:inwith_transaction_returning_status’
C:/Program Files (x86)/IronRuby
1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/transactions.rb:240:in
save' C:/Program Files (x86)/IronRuby 1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/transactions.rb:251:inrollback_active_record_state!’
C:/Program Files (x86)/IronRuby
1.1.3/Lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/transactions.rb:239:in
`save’

(yes, I’m using IronRuby 1.1.3 - it is great!!!

Digging deeper in the code I’m finding that it has to do with
Item.arel_table not having @primary_key set.

At that point I’m Stuck.

Thank you in advance for your help.

Eduardo