Я включаю Highcharts в свой проект Rails 3 / Ruby 1.8.7, используя в качестве отправной точки эпизод с Railscast 223.
Я пытаюсь составить график массы тела пользователя за предыдущие четыре недели.Бывают дни, когда пользователь не может ввести свой вес, и я хочу, чтобы график пропустил эти даты.
Я пытался использовать ответ на этот вопрос Stackoverflow:
Highcharts - RailsВ массиве содержатся пустые записи дат
, но у меня возникла та же проблема, о которой упоминал OP, в том, что значения веса назначаются датам без записей.Короче говоря, дата без веса все еще присваивается массиву со следующим найденным значением веса.
Вот код из опции серии моего графика:
series: [{
name: "Daily Weight",
pointInterval: <%= 1.day * 1000 %>,
pointStart: <%= 4.weeks.ago.to_i * 1000 %>,
data: <%= (4.weeks.ago.to_date..Date.today).map { |date| Weight.weight_on(date, current_user.id).to_f}.reject(&:zero?).inspect %>
}]
А вот функция weight_onиз модели Weight:
def self.weight_on(date, user_id)
weight = Weight.find_by_entry_date_and_user_id(date, user_id)
unless weight.nil?
return weight.weight_entry
end
end
Похоже, что происходит при построении массива даты / веса, дата удерживается до тех пор, пока не будет возвращено значение веса.Дата и вес (который не соответствует дате в массиве) затем добавляются в массив перед переходом к следующей дате.
Как мне также отклонить дату?Если для этой даты не найдено значение веса, как мне пропустить эту дату, чтобы она не была добавлена в массив и перейти к следующей дате?
Спасибо за помощь!