我有一个简单的ActiveRecord对象,表示估计的到达时间。
class Eta < ActiveRecord::Base
belongs_to :stop
belongs_to :vehicle
validates :timestamp, :presence => true
end
在我的数据库中,我创建了相应的列stop_id
,vehicle_id
和timestamp (of type datetime)
。
我设置了一个rake任务来对此表执行操作,但它生成的SQL没有意义。如果我试着跑:
for eta in Eta.all
puts eta.timestamp
end
尝试SELECT * FROM eta
,但表名为etas
,而不是eta
。
复数数据库命名与从ActiveRecord对象创建的其余表格一致,我成功创建了一个正常工作的类似ActiveRecord对象。
class PrecedingCoord < ActiveRecord::Base
belongs_to :stop
belongs_to :route
belongs_to :coord
end
在rake文件中:
for eta in PrecedingCoord.all
puts eta.coord.latitude
end
答案 0 :(得分:6)
Rails将ETA的复数设置为ETA。
> 'eta'.pluralize
=> "eta"
如果您已经创建了一个名为etas
的表格,则可以在模型中设置:
class Eta < ActiveRecord::Base
set_table_name "etas"
belongs_to :stop
belongs_to :vehicle
validates :timestamp, :presence => true
end