0
我有一個代碼,它以不同的方式計算創建操作和更新操作中的參數。這裏expiry_time是db中的列,expiry_duration是一個虛擬參數。如何將此代碼轉換爲模型?
class SomeController
def create
params[:model][:expiry_time] = Time.now + params[:model][:expiry_duration].to_i
@model = Model.new(params[:model])
if @model.save
redirect_to ..
else
render ..
end
end
def update
@model = Model.find(params[:id])
params[:model][:expiry_time] = @model.created_at + params[:model][:expiry_duration].to_i
if @model.update_params(params[:model])
redirect_to ..
else
render ..
end
end
end
我正在考慮將計算部分移到before_save函數中進行建模。我應該檢查那裏的身份證以確定它是新記錄還是現有的記錄?
class Model
before_save :update_expiry_time
def update_expiry_time
start_time = id ? created_at : Time.now
expiry_time = start_time + expiry_duration.to_i
end
def expiry_duration
expiry_time - created_at
end
end
您怎麼看?