2013-02-16 33 views
2

我正在使用Highcharts來顯示嵌入式實數據從數據庫。我的數據代碼如下。「類型錯誤」或「預期的數字」錯誤在ruby代碼繪圖時Highcharts

............ 
............ 
series: [{ 
     pointInterval: <%= 3.day * 1000 %>, 
     pointStart: <%= 3.weeks.ago.at_midnight.to_i * 1000 %>, 
     data: <%= (3.weeks.ago.to_date..Date.today).map { |date| Linkclick.total_clicks(@link,date)}.inspect %> 
    }] 
............. 
........... 

的問題是,它給我一個錯誤就行了

data: <%= (3.weeks.ago.to_date..Date.today).map { |date| Linkclick.total_clicks(@link,date)}.inspect %> 

說...

expected numeric 

Extracted source (around line #110): 

107:  series: [{ 
108:  pointInterval: <%= 3.day * 1000 %>, 
109:  pointStart: <%= 3.weeks.ago.at_midnight.to_i * 1000 %>, 
110:  data: <%= (3.weeks.ago.to_date..Date.today).map { |date| Linkclick.total_clicks(@link,date)}.inspect %> 
111:  }] 
112: }); 
113:  }); 

所調用下面給出的模型方法: -

def self.total_clicks(link,date) 
    linkclick=Linkclick.where("link=? AND created_at LIKE ?", link, date + "%") 
    logger.info "===ssssssssssssssssssssssssssssssssss=================#{linkclick.inspect}" 
    logger.info "===sssssssssaaaaaaaaaaaaaaaaaaaaaaaaa=================#{linkclick.class}" 
    logger.info "===sssssssssbbbbbbbbbbbbbbbbbbbbbbbbb=================#{linkclick.count.inspect}" 
    return linkclick.count 
    end 

logger.info in t他模型顯示數據應該如何流動。但是由於問題圖表沒有被顯示。 那麼,什麼是我的代碼的問題... 在此先感謝...

回答

1

請嘗試更新您的self.total_clicks(link, date)方法這種變化:

linkclick = Linkclick.where('link = ? AND DATE(created_at) = ?', link, date) 
+0

酷,現在的工作......作爲我是新來的鐵軌我只想問你什麼是我在做什麼錯......只是一個小解釋將是偉大的...謝謝... – Siddharth 2013-02-16 11:38:52

+1

有兩件壞事:ruby相關和SQL相關。 ** Ruby:**您試圖向Date對象添加字符串('%'),如果您沒有.to_s您的日期(您可以向沒有任何警告的示例添加Date對象的整數)你會得到更多的日期) ** SQL:** created_at具有DATETIME SQL類型(在MySQL/Postgresql中),例如,Postgres根本不運行'created_at LIKE'字符串%''查詢。如果你通過DB內部函數從created_at字段獲得日期部分,並進行直接檢查,就好像我在答案中顯示的那樣。 – 2013-02-16 12:09:24

+0

感謝您的解釋...... :) – Siddharth 2013-02-16 12:58:59