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 = "anonymous@domain.tld"       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: "anonymous@domain.tld", 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

What am I missing?

  Best regards,

   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 = "anonymous@domain.tld"            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: "anonymous@domain.tld", 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?

anon will be the string "1" and not the integer 1

Fred

[...]

> 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".