Forum: Ruby on Rails before_save only works at console

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Davi V. (Guest)
on 2008-11-02 00:48
(Received via mailing list)
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 = "removed_email_address@domain.invalid"
      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: "removed_email_address@domain.invalid", 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
Frederick C. (Guest)
on 2008-11-02 01:12
(Received via mailing list)
On 1 Nov 2008, at 22:46, Davi V. <removed_email_address@domain.invalid> 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
Davi V. (Guest)
on 2008-11-02 01:18
(Received via mailing list)
On Saturday 01 November 2008 21:11:59 Frederick C. wrote:
> On 1 Nov 2008, at 22:46, Davi V. <removed_email_address@domain.invalid> 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. :-)
  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
This topic is locked and can not be replied to.