Mysql Rails中列名的别名attriibute
因此,我有一个数据库,它是为一个旧的php应用程序设置的,我无法触摸数据库的工作方式 然而,我在数据库中有一些列名,它们在Ruby中使用了一些限制性的词,比如“class” 所以为了让它工作,我使用了Mysql Rails中列名的别名attriibute,mysql,ruby-on-rails,ruby,alias,Mysql,Ruby On Rails,Ruby,Alias,因此,我有一个数据库,它是为一个旧的php应用程序设置的,我无法触摸数据库的工作方式 然而,我在数据库中有一些列名,它们在Ruby中使用了一些限制性的词,比如“class” 所以为了让它工作,我使用了alias\u属性 但它不起作用。代码如下: class Contractor < ActiveRecord::Base set_table_name "contractors" alias_attribute :class_type, :class attr_accessible
alias\u属性
但它不起作用。代码如下:
class Contractor < ActiveRecord::Base
set_table_name "contractors"
alias_attribute :class_type, :class
attr_accessible :about, :alias, :business_entity, :business_logo, :business_name, :city, :class, :county, :created, :email, :founded, :metroarea, :nid, :phone, :state, :status, :street_address, :uid, :zipcode
end
最后一个只有在我删除alias_属性时才会出现,否则它与第一个错误相同我认为您的问题在于您提供的别名“:class” 类是ActiveRecord方法之一 您可以通过运行此命令来查看它
Contractor.first.methods
定义这个别名只是以某种方式“覆盖”它,并中断rails操作,因此,有gem在做这项工作。
到目前为止,它工作得很好
1.9.3-p125 :003 > Contractor.where(:zipcode => "94111")
Contractor Load (648.6ms) SELECT `contractors`.* FROM `contractors` WHERE `contractors`.`zipcode` = '94111'
(Object doesn't support #inspect)
=>
Contractor.first.methods