我正在使用Rails 3中的日历应用程序。我正在从用户收集'到'和'从'日期并创建日期,并根据该范围创建事件。这是代码:
date_range = (params[:from_date]..params[:to_date]).to_a
date_range.each do |r|
params[:orientation][:class_date] = r
@orientation = Orientation.new(params[:orientation])
@orientation.save
end
这就像一个魅力。现在,我想在星期一到星期五的视图中添加复选框,以便用户可以指定要为其创建重复事件的日期。我的想法是扩展上面的逻辑并使用'to'和'from'日期创建日期范围,然后根据用户检查的复选框(天)删除日期。如果用户选中“周一”,“周三”,“周五”,我会创建我的日期范围,然后从该范围中删除所有周四和周五日期。任何人都可以在Ruby中建议任何方法来处理这个问题吗?
答案 0 :(得分:2)
您可以在表单中添加复选框以忽略所选日期,然后忽略循环中的每一天:
# view
<% Date::DAYNAMES.each_with_index do |day_name, wday| %>
<%= check_box_tag "ignored_days[]", wday %>
<%= day_name %>
<% end %>
# controller
date_range.each do |r|
next if params[:ignored_days].include? r.wday.to_s #added edit here
params[:orientation][:class_date] = r
@orientation = Orientation.new(params[:orientation])
@orientation.save
end
希望这有帮助!