私は Ruby の初心者で、Heroku の PostgreSQL データベースで問題が発生しました。
そこで、時間エントリを保存する小さなアプリを作成しました: http://timekeper.herokuapp.com/
これで、アプリケーションを heroku にデプロイし、Postgre データベースに接続しました。
予想される動作
「Speichern」ボタンを押すと、AJAX リクエストが発行され、テーブルと右の図が更新されます。
問題
AJAX リクエストは応答されていますが、データが含まれていない空のようです。
私は何を試しましたか?
ログ (「heroku ログ」) には疑わしいものは含まれていません。
問題を 1 つのコマンドにまで突き止めました。
data = DateTime.now
time_a = DateTime.new(data.year, data.month, data.day)
time_b = DateTime.new(data.year, data.month, data.day, 23, 59, 59, 59)
Entry.all(:starttime => time_a..time_b, :order => [starttime.desc]) #=> []
「Entry.all」がエントリを返すため、データベースにはエントリが含まれます。
これは、ロードされた app.rb を使用した Heroku 上の irb セッションの図です。
Heroku の PostgreSQL データベースをローカル システムに接続するとき。すべてが機能しています!
ソース コード全体を調べたい場合は、GitHub で見つけることができます: https://github.com/Reflic/timekeeper
助けてくれてありがとう、ケビン
編集 1 これは AJAX Javascript コードです。
function hour_chart(loading){
if(loading){
$('#hour').html('');
}
$.ajax({
url: '/api/percenttoday',
type: 'GET',
data: '',
success: function(obj) {
Morris.Donut({
element: 'hour',
data: [
{label: "24h", value: obj.workpercent},
{label: "24h", value: obj.offpercent}
],
colors: ['#679DC6', '#6D6D6D'],
formatter: function (y){return y+' %'}
});
}
});
}
これはルビールーターです:
get '/api/percenttoday' do
today_data = Stats.prepare(Stats.today(DateTime.now));
workpercent = (today_data[1].last * 100) / Dtutil::DAYSECONDS
offpercent = 100 - workpercent
json :workpercent => workpercent, :offpercent => offpercent
end
そして、ここに統計モジュールがあります: https://github.com/Reflic/timekeeper/blob/master/utilities.rb