2011-10-31 25 views
2

我有一個簡單的ActiveRecord對象,表示估計的到達時間。從ActiveRecord對象生成不正確的SQL的Rails

class Eta < ActiveRecord::Base 
    belongs_to :stop 
    belongs_to :vehicle 
    validates :timestamp, :presence => true 
end 

在我的數據庫,我創建了相應的列stop_idvehicle_idtimestamp (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 

在耙文件:

for eta in PrecedingCoord.all 
    puts eta.coord.latitude 
end 
+0

哈哈哈哈......這一次讓我大聲笑...約定優於配置有偶爾打嗝 – tybro0103

回答

6

滑軌設置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 
相關問題