我是ruby on rails的新手,我正在尝试在Activity<类中进行操作的ActiveRecord :: Base的。 我被困在需要将字符串数组转换为整数的位置。
代码如下
#code from line 151
start_time_parts=start_time.split(":").collect{ |y| y.to_i }
start_time=Time.utc(2015,"jan",1,start_time_parts[0],start_time_parts[1],start_time_parts[2])
end_time_parts=end_time.split(":").collect{ |y| y.to_i }
end_time=Time.utc(2015,"jan",1,end_time_parts[0],end_time_parts[1],end_time_parts[2])
sql1='SELECT `Start_Time` FROM Times'
sql2='SELECT Rates FROM New_billcodes_mock WHERE Category_name=?, Instrument_name=? and Time_zone_name=?'
database_string_start_time =Activity.find_by_sql([sql1,'1'])
#error is here
string_start_time_parts=database_string_start_time.split(":").collect{ |y| Activity.type_cast(y)}
database_start_time=Time.utc(2015,"jan",1,string_start_time_parts[0],string_start_time_parts[1],string_start_time_parts[2])
我收到错误消息
NoMethodError (undefined method `type_cast' for #<Class:0x4c25340>):
显然我不能使用to_i方法,因为它不是类Activity的方法。如果有一个现有的方法可用于转换为整数,请帮助我。
答案 0 :(得分:0)
此代码存在许多问题,但针对您的具体问题:在两个地方使用{ |y| y.to_i }
构造返回整数;你为什么不在第三个实例({ |y| Activity.type_cast(y)}
)中使用它?这是一个相同的用例。
或者如果Activity.find_by_sql()没有返回一个数组,这会使它在':'上拆分相当毫无意义 - 但这是一个不同的问题。
答案 1 :(得分:0)
我想我已经解决了我的问题。我使用全局方法Integer(
)将字符串转换为整数。
{|y| y.to_i}
不起作用,因为to_i
不是class Activity