我想通过ActiveRecord访问Limesurvey数据库。有些表的列名称为'79924X192X1240'。当我想访问模型时,我收到以下错误:
ActionView::Template::Error (/usr/local/rvm/gems/ruby-1.9.2-p318/gems/activerecord-3.1.10/lib/active_record/attribute_methods/time_zone_conversion.rb:44: syntax error, unexpected tINTEGER
def 79924X192X1240=(original_time)
^):
我想,错误出现,因为不允许,方法以数字开头。但是我不能改变列名,因为Limesurvey会生成这些列。
仅当列的数据类型(如79924X192X1240)为datetime时才会出现此错误。像varchar这样的其他数据类型没有任何问题。
我如何访问这些日期时间列呢?
答案 0 :(得分:0)
您需要为此执行原始sql查询。 ActiveRecord是为ruby编写的,它不允许方法名称以数字开头。由于表中的每一列都等同于一个方法,因此尝试访问该信息每次都会引发语法错误。
您需要使用:ActiveRecord::Base.connection.execute