私は現在、この最初の詳細なコードを乾かそうとしています。
def planting_dates_not_nil?
!plant_out_week_min.blank? || !plant_out_week_max.blank? || !sow_out_week_min.blank? || !sow_out_week_max.blank?
end
def needs_planting?(week)
if !plant_out_week_min.blank? && !plant_out_week_max.blank?
(plant_out_week_min..plant_out_week_max).include? (week)
end
end
def needs_sowing?(week)
if !sow_out_week_min.blank? && !sow_out_week_max.blank?
(sow_out_week_min..sow_out_week_max).include? (week)
end
end
def needs_harvesting?(week)
if !harvest_week_min.blank? && !harvest_week_max.blank?
(harvest_week_min..harvest_week_max).include? (week)
end
end
これが私の最初の試みです:
def tasks_for_week(week,*task_names)
task_names.each do |task_name|
to_do_this_week = []
unless read_attribute(task_name).nil?
if (read_attribute("#{task_name}_week_min")..read_attribute("#{task_name}_week_max")).include? (week)
to_do_this_week << task_name
end
end
end
end
ただし、このコードをコンソールで次のように実行すると、次のようになります。
p.tasks_for_week(Date.today.cweek, :plant_out, :sow_out])
予期しない結果が発生します...植物を植え付ける必要はありませんが、両方のタスク名の配列が返されます([:plant_out、:sow_out]
誰かがこれをクリーンアップしてtasksforweekメソッドに期待される結果を返す方法を教えてもらえますか?
TIA