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