当我尝试通过终端中的IRB添加我的日期时:
song.released_on = Date.new(2013,10,10)
Run Code Online (Sandbox Code Playgroud)
它说有以下错误 TypeError: no implicit conversion of Date into String
在这段代码中:
def released_on=date
super Date.strptime(date, '%m/%d/%Y')
end
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几个小时知道并且无法找到问题.想知道有人可以帮忙吗?
代码:
def released_on=date
super Date.strptime(date, '%m/%d/%Y')
end
Run Code Online (Sandbox Code Playgroud)
使用strptimeDate类的(string-parse-time)函数.它需要两个字符串,一个表示实际日期,另一个表示字符串格式化程序.
为了使事情有效,你需要做的就是改变:
song.released_on = Date.new(2013,10,10) # Wrong, not a string!
song.released_on = '10/10/2013' # Correct!
Run Code Online (Sandbox Code Playgroud)
您还可以将功能更改为也接受日期:
def released_on=date
parsed_date = case date
when String then Date.strptime(date, '%m/%d/%Y')
when Date then date
else raise "Unable to parse date, must be Date or String of format '%m/%d/%Y'"
end
super parsed_date
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7458 次 |
| 最近记录: |