# Problem editing a page with 0.6.2 (gem)

**URL:** <https://www.ruby-forum.com/t/problem-editing-a-page-with-0-6-2-gem/107791>\
**Category:** Radiant CMS\
**Created:** [June 26, 2007, 11:06am UTC](https://www.ruby-forum.com/t/problem-editing-a-page-with-0-6-2-gem/107791 "2007-06-26T11:06:57Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![keltia](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/da6949/32.png) [@keltia](https://www.ruby-forum.com/u/keltia)\
**Post date:** [June 26, 2007, 11:06am UTC](https://www.ruby-forum.com/t/problem-editing-a-page-with-0-6-2-gem/107791/1 "2007-06-26T11:06:57Z")

</div>

Hello,

I just updated my installation to 0.6.2 with gem update and followed  
the instructions, did rake db:migrate and all that. Now, when I want  
to save a page, I get this:

Any idea why?

Processing PageController#edit (for 192.93.23.254 at 2007-06-26  
10:49:34) [POST]  
Session ID: 42454526596a79897360bb3e7633a97d  
Parameters: {“commit”=\>“Save Changes”, “part”=\>{“0”=\>{“name”=\>“body”,  
“filter\_  
id”=\>“Textile”, “content”=\>"\<div class=“left”\>\r\n  
!/images/leviathan.png(Eye  
with Pyramid)!\r\n\r\n\r\n\<div class=“main”\>\r\n\r\nCalife is  
small pro  
gram that enable a system administrator to become root (or another user)  
on his/  
her machines without giving the root password but his/her  
own.\r\n\r\nThe most i  
[…]  
ry famous french comic taking place in an turkish/mideast country  
whereas the pr  
incipal character - the Grand Vizir named “Iznogoud” - is always  
making plans  
to become “Calife” in place of the “Calife”.\r\n"}},  
“action”=\>“edit”, “id”=

> “8”, “controller”=\>“admin/page”, “page”=\>{“slug”=\>“calife”, “class\_name”=\>“Page  
> “, “title”=\>“Calife: how to become root (or another user) with one’s own  
> passwor  
> d”, “breadcrumb”=\>“Calife: how to become root (or another user) with  
> one’s own p  
> assword”, “lock\_version”=\>””, “status\_id”=\>“100”, “layout\_id”=\>""}}

NoMethodError (undefined method `+' for nil:NilClass): /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/activerecord/li b/active_record/locking/optimistic.rb:64:in`update\_without\_callbacks’  
/usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/activerecord/li  
b/active\_record/callbacks.rb:267:in `update_without_timestamps' /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/activerecord/li b/active_record/timestamp.rb:48:in`update’  
/usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/activerecord/li  
b/active\_record/base.rb:1789:in `create_or_update_without_callbacks' /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/activerecord/li b/active_record/callbacks.rb:242:in`create\_or\_update’  
/usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/activerecord/li  
b/active\_record/base.rb:1545:in `save_without_validation' /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/activerecord/li b/active_record/validations.rb:752:in`save\_without\_transactions’  
/usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/activerecord/li  
b/active\_record/transactions.rb:129:in `save' /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/activerecord/li b/active_record/connection_adapters/abstract/database_statements.rb:59:in`trans  
action’  
/usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/activerecord/li  
b/active\_record/transactions.rb:95:in `transaction' /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/activerecord/li b/active_record/transactions.rb:121:in`transaction’  
/usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/activerecord/li  
b/active\_record/transactions.rb:129:in `save' /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/app/controllers/admin/page_c ontroller.rb:110:in`save’  
/usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/app/controllers/admin/abstra  
ct\_model\_controller.rb:116:in `handle_new_or_edit_post' /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/app/controllers/admin/page_c ontroller.rb:25:in`edit’  
/usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/  
action\_controller/base.rb:1095:in `send' /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/ action_controller/base.rb:1095:in`perform\_action\_without\_filters’  
/usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/  
action\_controller/filters.rb:632:in `call_filter' /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/ action_controller/filters.rb:638:in`call\_filter’  
/usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/  
action\_controller/filters.rb:438:in `call' /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/ action_controller/filters.rb:637:in`call\_filter’  
/usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/  
action\_controller/filters.rb:638:in `call_filter' /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/ action_controller/filters.rb:438:in`call’  
/usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/  
action\_controller/filters.rb:637:in `call_filter' /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/ action_controller/filters.rb:638:in`call\_filter’  
/usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/  
action\_controller/filters.rb:438:in `call' /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/ action_controller/filters.rb:637:in`call\_filter’  
/usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/  
action\_controller/filters.rb:619:in `perform_action_without_benchmark' /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/ action_controller/benchmarking.rb:66:in`perform\_action\_without\_rescue’  
/usr/local/lib/ruby/1.8/benchmark.rb:293:in `measure' /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/ action_controller/benchmarking.rb:66:in`perform\_action\_without\_rescue’  
/usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/  
action\_controller/rescue.rb:83:in `perform_action' /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/ action_controller/base.rb:430:in`send’  
/usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/  
action\_controller/base.rb:430:in `process_without_filters' /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/ action_controller/filters.rb:624:in`process\_without\_session\_management\_support’  
/usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/  
action\_controller/session\_management.rb:114:in `process_without_test' /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/ action_controller/test_process.rb:15:in`process’  
/usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/actionpack/lib/  
action\_controller/base.rb:330:in `process' /usr/local/lib/ruby/gems/1.8/gems/radiant-0.6.2/vendor/rails/railties/lib/di spatcher.rb:41:in`dispatch’  
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:78:in  
`process' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:76:in`  
synchronize’

Line 64 in optimistic.rb is

```
  def update_with_lock #:nodoc:
    return update_without_lock unless locking_enabled?

    lock_col = self.class.locking_column
    previous_value = send(lock_col)
    send(lock_col + '=', previous_value + 1) <<<<<<< line 64

    affected_rows = connection.update(<<-end_sql, 

```

“#{self.class.name} Update  
with optimistic locking”)  
UPDATE #{self.class.table\_name}  
SET #{quoted\_comma\_pair\_list(connection,  
attributes\_with\_quotes(false)  
)}  
WHERE #{self.class.primary\_key} = #{quote\_value(id)}  
AND #{self.class.quoted\_locking\_column} =  
#{quote\_value(previous\_value  
)}  
end\_sql

```
    unless affected_rows == 1
      raise ActiveRecord::StaleObjectError, "Attempted to update a 

```

stale obj  
ect"  
end

```
    return true
  end
```

---

<div class="post-metadata">

**Author:** ![keltia](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/da6949/32.png) [@keltia](https://www.ruby-forum.com/u/keltia)\
**Post date:** [June 27, 2007, 4:13am UTC](https://www.ruby-forum.com/t/problem-editing-a-page-with-0-6-2-gem/107791/2 "2007-06-27T04:13:06Z")

</div>

> From your trace, I’m guessing that the lock column isn’t being initialized to a default value of zero, and null values are screwing  
> it up.

What db are you using?

---

<div class="post-metadata">

**Author:** ![keltia](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/da6949/32.png) [@keltia](https://www.ruby-forum.com/u/keltia)\
**Post date:** [June 28, 2007, 12:24pm UTC](https://www.ruby-forum.com/t/problem-editing-a-page-with-0-6-2-gem/107791/3 "2007-06-28T12:24:04Z")

</div>

On 6/27/07, Daniel S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > From your trace, I’m guessing that the lock column isn’t being initialized to a default value of zero, and null values are screwing  
> > it up.
> 
> What db are you using?

In that case, postgresql 8.2.3 running on FreeBSD 6.1.

Thanks for your answer, I was becoming quite depressed…
