title: Validation similar to attr_readonly, but ignoring blank attributes
body: <p>I'm trying to make it so that columns can be filled and updated only if they are blank. Similar to <code>attr_readonly</code> but permitting updates if the attribute is empty. </p>
  
  <p>Here's my sad attempt, it fails because <code>before_update</code> tries to call <code>attr_readonly</code> on the instance.</p>
  
  <pre><code>before_update :check_attrs
  
  def check_attrs
    if column_1.present?
      attr_readonly :column_1
    elsif column_2.present?
      attr_readonly :column_2
    elsif column_3.present?
      attr_readonly :column_3
    elsif column_4.present?
      attr_readonly :column_4
    end
  end
  </code></pre>