我的模型中有一个接受浮点值的变量。创建对象时一切正常。当我尝试编辑值时出现问题。我这样验证:
validates :amount, presence: true
validates_numericality_of :amount, greater_than_or_equal_to: 0
当我尝试编辑对象时,它只接受小数点后具有相同值的值。例如,如果我的初始值是2.1,它将接受3.1或4.1但不接受2.0或2.5。我认为问题在于验证,但这也是我的更新方法:
def update
@entry = Entry.find(entry_params[:id])
respond_to do |format|
if @entry.update_amount(entry_params[:amount])
@entry.save
format.html { redirect_to diary_url(:curr_day => entry_params[:day])}#, notice: 'User was successfully updated.' }
format.json { render :show, status: :ok, location: @entry }
else
format.html { render :new }
format.json { render json: @entry.errors, status: :unprocessable_entity }
end
end
end
和update_amount:
def update_amount(amount)
self.amount = amount
end
任何人都可以建议我该怎么做?
这是它的样子: