私はいつもこのエラーを受けています
#<NoMethodError: undefined method `hours' for "1":String>
更新:「1」だけでなく、任意の数字でエラーが発生します
ここに私が時間を返すコードがあります。私はこの方法を使用しています
def check_hours(most_recent_snooze)
if most_recent_snooze.duration.nil?
return 0.hours
else
return most_recent_snooze.duration.hours
end
end
これらのコードは check_hours(most_recent_snooze) メソッドを使用します
def snoozing?
if most_recent_snooze = Snooze.find_by_sensor_id(self.id)
if most_recent_snooze && !(most_recent_snooze.created_at + check_hours(most_recent_snooze) < Time.now)
# snooze is active
return true
else
most_recent_snooze.destroy
return false
end
end
return false
#self.snoozes.active.present? ? true : false
end
def snooze_minutes_remaining
# (60 - (Time.now - self.snoozes.last.created_at)/60).to_i + 1
most_recent_snooze = Snooze.find_by_sensor_id(self.id)
distance_of_time_in_words(Time.now, most_recent_snooze.created_at + check_hours(most_recent_snooze)) if most_recent_snooze
end
このコードのどこが間違っていたのか教えてください。
更新: schema.rb 内では、期間は整数です
create_table "snoozes", :force => true do |t|
.......
........
.........
t.integer "duration"
end