Before_save only works at console

Hi all. I’ve the following comments’ model:

class Comment < ActiveRecord::Base
validates_presence_of :commentary, :anon

belongs_to :commentary, :polymorphic => true

attr_accessor :anon #anon is an virtual attribute.

before_save :anonymize

protected
def anonymize
if self.anon == 1
self.author = “Anonymous”
self.email = “[email protected]
end
end
end

If I bring up my console:

c = Comment.new
=> #<Comment id: nil, commentary_id: nil, commentary_type: nil, author:
nil,
email: nil, comment: nil, created_at: nil, updated_at: nil>
c.author = “foo”
=> “foo”
c.email = “bar”
=> “bar”
c.commentary_type = “Article”; c.commentary_id = 6
=> 6
c.anon = 1
=> 1
c.save!
=> true
c
=> #<Comment id: 26, commentary_id: 6, commentary_type: “Article”,
author:
“Anonymous”, email: “[email protected]”, comment: nil, created_at:
“2008-11-01 22:18:06”, updated_at: “2008-11-01 22:18:06”>

All works fine. But it doesn’t work from my view:

http://pastie.org/305633

From my view, it saves using comment_author.value and
comment_email.value.
What am I missing?

Best regards,

Davi V.

E-mail: davividal arroba siscompar ponto com ponto br
MSN : davividal arroba msn ponto com
GTalk : davividal arroba gmail ponto com
Skype : davividal
YIM : davi_vidal
ICQ : 138815296

On 1 Nov 2008, at 22:46, Davi V. [email protected] wrote:

c.commentary_type = “Article”; c.commentary_id = 6

All works fine. But it doesn’t work from my view:

http://pastie.org/305633

From my view, it saves using comment_author.value and
comment_email.value.
What am I missing?

anon will be the string “1” and not the integer 1

Fred

On Saturday 01 November 2008 21:11:59 Frederick C. wrote:

On 1 Nov 2008, at 22:46, Davi V. [email protected] wrote:
[…]

From my view, it saves using comment_author.value and
comment_email.value.
What am I missing?

anon will be the string “1” and not the integer 1

Ops! Lack of coffee. :slight_smile:
Thank you very much, Fred.

Changed from “self.anon” to “self.anon.to_i”.


Davi V.

E-mail: davividal arroba siscompar ponto com ponto br
MSN : davividal arroba msn ponto com
GTalk : davividal arroba gmail ponto com
Skype : davividal
YIM : davi_vidal
ICQ : 138815296