Ruby on rails eval函数:在rails中将datetime转换为字符串
我正在尝试将标准datetime对象转换为字符串 我试过:Ruby on rails eval函数:在rails中将datetime转换为字符串,ruby-on-rails,string,datetime,Ruby On Rails,String,Datetime,我正在尝试将标准datetime对象转换为字符串 我试过: datetime_object.to_s 及 但在这两种情况下我都会得到一个错误——“无效的八进制数字” 知道这里发生了什么吗 编辑,我试图在eval函数中这样做,以便将字符串转换为哈希。我想这就是问题所在。。。但不知道为什么会这样 eval("{:date => {:id => " + @unit.id.to_s + ", :start_datetime => " + @start_datetime.to_s +
datetime_object.to_s
及
但在这两种情况下我都会得到一个错误——“无效的八进制数字”
知道这里发生了什么吗
编辑,我试图在eval函数中这样做,以便将字符串转换为哈希。我想这就是问题所在。。。但不知道为什么会这样
eval("{:date => {:id => " + @unit.id.to_s + ", :start_datetime => " + @start_datetime.to_s + ", :end_datetime => " + @end_datetime.to_s + "}}" )
我使用的日期时间格式是:2014-08-20 13:00:00
Time.now.to\s
或DateTime.now.to\s
您要转换的对象是什么?你的datetime对象中有什么?也可以看到它是datetime对象,例如2014-08-20 05:00:00为什么使用eval?to_s
的输出可能是有效的ruby,也可能不是有效的ruby——它只是一条人类可读的字符串。我同意张先生的观点,从文本({key:value,key2:value2}
)构建哈希可能更容易阅读。不需要评估。为了更清楚地了解正在发生的事情,请给我们@start\u datetime.class.name
的输出。
eval("{:date => {:id => " + @unit.id.to_s + ", :start_datetime => " + @start_datetime.to_s + ", :end_datetime => " + @end_datetime.to_s + "}}" )