Вопрос : Как превратить календарь в форму, в которой выбор даты отображается в соответствии с календарным днем вместо текущей даты?
Что яя пытаюсь сделать: Я хотел бы создать календарь, который отображает тренировки велосипедиста.
- Создание тренировок в течение каждого календарного дня, автоматическое отображение даты тренировки, соответствующей данному дню, в форме
Каждая тренировка имеет много интервалов.Каждый календарный день имеет одну тренировку.
Плагины: Извлечены table_builder.rb и calendar_helper.rb из https://github.com/p8/table_builder (и гем, и плагин не развертываются с рельсами 3.1)
класс WorkoutsController.rb
def new
@workout = Workout.new
@date = params[:month] ? Date.parse(params[:month].gsub('-', '/')) : Date.today
3.times do
@workout.intervals.build
end
end
Workout.rb
attr_accessible :workoutdate, :intervals_attributes
has_many :intervals, :dependent => :destroy
accepts_nested_attributes_for :intervals, :reject_if => lambda { |a| a[:interval_name].blank? }, :allow_destroy => true
Interval.rb
attr_accessible :interval_name, :workout_id
belongs_to :workout
views / workouts / new.html.erb
<div id ="calendar">
<%= calendar_for @workouts, :year => @date.year, :month => @date.month do |calendar| %>
<%= calendar.head('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday') %>
<% calendar.day(:day_method => :workoutdate) do |date, workouts| %>
<%= date.day %>
<%= render 'form' %>
<% end %>
<% end %>
</div>
views / workouts / _form.html.erb
<%= nested_form_for @workout do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :workoutdate %><br />
<%= f.date_select :workoutdate %>
</p>
<%= f.fields_for :intervals %>
<p><%= f.link_to_add "Add interval", :intervals %></p>
<p><%= f.submit "Submit" %></p>
<% end %>
views / workouts / _interval_fields.html.erb
<p>
<%= f.label :interval_name, "Interval" %>
<%= f.text_field :interval_name %>
<%= f.link_to_remove "remove" %>
</p>
в данный момент работает на heroku http://billeee.herokuapp.com/workouts