我正在尝试将1添加到数据库中已递增的字段中,但收到以下错误:NoMethodError (undefined method
+‘for false:FalseClass):
代码:
med = Media.find(params[:media_id])
med.update_attributes({:screener_viewed => med.screener_viewed + 1})
我只想将1
添加到screener_viewed的当前值中,但无法使其工作。
工作代码:
Media.increment_counter(:screener_viewed, params[:media_id])
发布于 2010-12-28 19:47:01
使用increment!
med.increment!(:screener_viewed)
确保数据库中的screener_viewed
是整数类型。
发布于 2010-12-28 19:46:51
仔细检查错误消息。它说明没有为FalseClass定义a方法,这意味着screener_viewed包含布尔值false。您是否希望它包含一个整数,或者您正在尝试将该值反转为true?
发布于 2010-12-28 19:47:05
您能提供媒体模型的迁移定义吗?看起来您已经将它定义为一个布尔值,它不支持+运算符:
irb(main):002:0> false + 1
NoMethodError: undefined method `+' for false:FalseClass
from (irb):2
https://stackoverflow.com/questions/4548923
复制