電話番号用の text_field タグを含むフォームがあり、その情報を純粋な整数としてデータベースに保存したいと考えています。これには、基本的にすべての () などを削除する before_save が含まれます。
別の投稿で、このようなものが「電話」フィールドからの値を上書きする可能性があることを発見しました。
def original_number=(value)
value.gsub!(/\D/, '') if num.is_a?(String)
write_attribute(:original_number, num.to_i)
end
しかし、 =(値) は私を少し混乱させています。それを before_save パラメータとしてどのように記述すればよいでしょうか?
つまり before_save #######
デフ#######
終わり
original_number=(value) に対してどのように記述しますか?
これまでの私のモデルは次のようになります
# == Schema Information
#
# Table name: phones
#
# id :integer not null, primary key
# name :string(255)
# twilio_number :integer
# original_number :integer
# user_id :integer
# created_at :datetime not null
# updated_at :datetime not null
#
class Phone < ActiveRecord::Base
attr_accessible :original_number, :user_id, :name, :twilio_number
belongs_to :user
validates :name, presence: true
validates :twilio_number, presence: true
validates :original_number, presence: true
validates :user_id, presence: true
default_scope order: 'phones.created_at DESC'
end