我正在尝试将用户输入转换为“6个月”转换为Ruby方法àla6.months
。
如何做到这一点?
我在第10行遇到undefined method 6.months
错误。
感谢您的帮助。
class Coupon < ActiveRecord::Base
def self.duration_options
["3 years", "2 years", "1 year", "6 months", "3 months", "1 month"]
end
def end_at
if Coupon.duration_options.include?(duration)
method = duration.sub!(' ', '.')
time = Time.zone.now + send(method)
end
time
end
end
答案 0 :(得分:2)
您的send
在对象本身上,在这种情况下是self.send(method)
你可以这样做
if Coupon.duration_options.include?(duration)
off_set = duration.split(" ")
time = Time.zone.now + off_set.first.to_i.send(off_set.last.to_sym)
end
time