/ / Brak wymaganego wyniku z if else w metodzie pomocniczej - css, ruby-on-rails, if-statement, helpers

Niewykonanie wymaganego wyniku wynika z tego, że w innym przypadku w metodzie pomocnika - css, ruby-on-rails, if-statement, helpery

Użyłem pomocnika do wyświetlania koloru tła dla świąt i liści i nazywam metodę pomocnika z widoku w ten sposób -

%th{:class => weekend_class_top(date)}= date.strftime("%d")

metoda pomocnicza, która została wywołana -

def weekend_class_top(date)
if (date == date.end_of_month)
"weekend_color5"
elsif (date.to_s(:weekend) == "Sun")
"weekend_color3"
elsif @holidays.any?
@holidays.map.each do |holiday|
if (date == holiday)
"timesheet_holiday_color"
end
end
elsif @user_leaves.any?
@user_leaves.flatten.map.each do |leave|
if (date == leave)
"timesheet_leave_color"
end
end
end
end

kod, który napisałem, „Dostaję kolor tła tylko na święta, a nie na liście, chociaż obecne są zarówno święta, jak i liście.

To jest edytowana metoda pomocnicza -

def weekend_class_top(date)
if (date == date.end_of_month)
"weekend_color5"
elsif (date.to_s(:weekend) == "Sun")
"weekend_color3"
elsif @holidays.any?
@holidays.map.each do |holiday|
if @user_leaves.any?
@user_leaves.flatten.map.each do |leave|
if (date == leave)
"timesheet_leave_color"
end
end
elsif (date == holiday)
"timesheet_holiday_color"
end
end
end
end

Poprzez powyższy napisany metd „dostaję tylko kolor tła dla liści, ale nie na święta.

Odpowiedzi:

0 dla odpowiedzi № 1

W ten sposób otrzymałem poprawny wynik -

def weekend_class_top(date)
if (date == date.end_of_month)
"weekend_color5"
elsif (date.to_s(:weekend) == "Sun")
"weekend_color3"
elsif @holidays.include?(date)
"timesheet_holiday_color"
elsif @user_leaves.flatten.include?(date)
"timesheet_leave_color"
end
end