0

My before_save doesn't update the verified_date field.
Why is that? Other processes can update the field ok.

Model:

class Link < ActiveRecord::Base

  belongs_to :group
  validates_presence_of :url_address
  validates_presence_of :group_id
  validates_size_of :version_number, :maximum => 10 #, :allow_nil => true
  before_save :verify_this_link
  acts_as_list

  ...

  def verify_this_link
    verified_date = Time.now
  end 

end

mysql> describe links;
+----------------+--------------+------+-----+---------+----------------+
| Field          | Type         | Null | Key | Default | Extra          |
+----------------+--------------+------+-----+---------+----------------+
| id             | int(11)      | NO   | PRI | NULL    | auto_increment |
| url_address    | varchar(255) | NO   |     | NULL    |                |
| alt_text       | varchar(255) | YES  |     | NULL    |                |
| group_id       | int(11)      | YES  |     | NULL    |                |
| position       | int(11)      | YES  |     | NULL    |                |
| created_at     | datetime     | YES  |     | NULL    |                |
| updated_at     | datetime     | YES  |     | NULL    |                |
| version_number | varchar(255) | YES  |     | NULL    |                |
| content_date   | date         | YES  |     | NULL    |                |
| verified_date  | date         | YES  |     | NULL    |                |
+----------------+--------------+------+-----+---------+----------------+


mysql> select id, substr(url_address,1,20),
verified_date from links where id > 350;
+-----+--------------------------+---------------+
| id  | substr(url_address,1,20) | verified_date |
+-----+--------------------------+---------------+
| 351 | http://magicmodels.r     | NULL          |
| 352 | http://jsbin.com/#ja     | 2014-07-12    |
| 353 | http://www.javascrip     | 2014-07-12    |
| 354 | http://www.test.com      | 2014-08-08    |
| 357 | http://www.t5.com        | 2014-07-12    |
+-----+--------------------------+---------------+
5 rows in set (0.00 sec)
Michael Durrant
  • 93,410
  • 97
  • 333
  • 497

1 Answers1

2

Try:

  def verify_this_link
    self.verified_date = Time.now
  end 

Reference https://stackoverflow.com/a/6326323/252671

Community
  • 1
  • 1
Mark Silverberg
  • 1,249
  • 2
  • 8
  • 21
  • +1 This is the truly warped bit of Ruby syntax. I've wasted hours of my life on it. – Gene Aug 09 '14 at 03:11