Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails eval函数:在rails中将datetime转换为字符串_Ruby On Rails_String_Datetime - Fatal编程技术网

Ruby on rails eval函数:在rails中将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对象转换为字符串

我试过:

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 + "}}" )